SparkSQL聚合函式

  • 文檔創建者:Roxy
  • 編輯次數:5
  • 最近更新:Nikozhan 于 2026-03-03
  • 1. 概述

    本文介紹 SparkSQL 中的聚合函式文法。

    2. COUNT-統計個數

    範例原表如下圖所示:

    count(*):統計檢索出的行的個數,包括 NULL 值的行。 

    在 SparSQL 中使用語句:select COUNT(*) from DB表輸入-複本,得到統計的檢索行個數,如下圖所示:

    注:其中查詢的資料表、欄位需要根據輸入提示手動選擇,不能直接輸入。

    count(expr):傳回指定欄位 expr 的非空值的個數。

    在 SparSQL 中使用語句:select COUNT(`貨主地區` ) from DB表輸入-複本,得到統計「貨主地區」欄位非空值的個數,如下圖所示:

    count(DISTINCT expr[, expr_.]):傳回欄位 expr 是唯一的且非 NULL 的行的數量。 

    在 SparSQL 中使用語句:select count(DISTINCT `貨主名稱` ) FROM DB表輸入,得到統計「貨主地區」欄位非空值且去重的個數,如下圖所示:

    3. SUM-總和統計

    範例原表如下圖所示:

    sum(col):對指定列求和(包含重複值)。

    在 SparSQL 中使用語句:

    select `運貨商`,sum( `應付金額` ) 
    from DB表輸入
    group by `運貨商` 

    得到統計「運貨商」欄位的「應付金額」匯總值,如下圖所示:

    注:其中查詢的資料表、欄位需要根據輸入提示手動選擇,不能直接輸入。

    sum(DISTINCT col):對指定列求和(不包含重複值)。

    在 SparSQL 中使用語句:

    select `運貨商`,sum(DISTINCT `應付金額` ) 
    from DB表輸入 
    group by `運貨商` 

    得到統計「運貨商」欄位去重的「應付金額」匯總值,如下圖所示:

    得到以下結果:

    4. AVG-平均值統計

    範例原表如下圖所示:

    avg(col):對指定列求平均值者(包含重複值)。

    在 SparSQL 中使用語句:

    select `運貨商`,avg( `應付金額` ) 
    from DB表輸入
    group by `運貨商` 

    得到統計「運貨商」欄位的「應付金額」平均值,如下圖所示:

    注:其中查詢的資料表、欄位需要根據輸入提示手動選擇,不能直接輸入。

    avg(DISTINCT col):對指定列元素求平均值者(不包含重複值)。 

    在 SparSQL 中使用語句:

    select `運貨商`,avg(distinct `應付金額` ) 
    from DB表輸入
    group by `運貨商` 

    得到統計「運貨商」欄位去重的「應付金額」平均值,如下圖所示:

    5. MIN-最小值統計

    範例原表如下圖所示:

    min(col):傳回指定列的最小值。 

    在 SparSQL 中使用語句:select min(`應付金額` ) from DB表輸入,如下圖所示:

    注:其中查詢的資料表、欄位需要根據輸入提示手動選擇,不能直接輸入。

    6. MAX-最大值

    範例原表如下圖所示:

    max(col):傳回指定列的最大值。 

    在 SparSQL 中使用語句:select max(`應付金額` ) from DB表輸入,如下圖所示:

    注:其中查詢的資料表、欄位需要根據輸入提示手動選擇,不能直接輸入。

    7. VARIANCE-方差

    原資料表如下圖所示:

    variance(col):傳回指定列數值的樣本方差,多用於統計學。

    範例:select variance(`單價` ),variance(`進價` )  from DB表輸入,結果如下圖所示:

    var_pop(col):傳回指定列數值的總體方差。

    範例:select var_pop(`單價` ),var_pop(`進價` )  from DB表輸入,結果如下圖所示:

    var_samp(col):傳回指定列數值的樣本方差。 

    範例:select var_samp(`單價` ),var_samp(`進價` )  from DB表輸入,結果如下圖所示:

    8. STDDEV_POP-標準差

    原資料表如下圖所示:

    stddev_pop(col):求指定列數值的標準偏差。 

    範例:select stddev_pop(`單價` ),stddev_pop(`進價`)  from DB表輸入,結果如下圖所示:

    stddev_samp(col):求指定列數值的樣本標準偏差。

    範例:select stddev_samp(`單價` ),stddev_samp(`進價`)  from DB表輸入,結果如下圖所示:

    9. COVAR_POP-協方差

    原資料表如下圖所示:

    covar_pop(col1, col2):求指定列數值的總體協方差。 

    範例:select covar_pop(`單價` ,`進價`) from DB表輸入,結果如下圖所示:

    covar_samp(col1, col2):求指定列數值的樣本協方差。 

    範例:select covar_samp(`單價` ,`進價`) from DB表輸入,結果如下圖所示:

    10. CORR-相關係數

    原資料表如下圖所示:

    corr(col1, col2):傳回兩列數值的相關係數。 

    範例:select corr(`單價` ,`進價`) from DB表輸入,結果如下圖所示:

    11. PERCENTILE-取p%分位數

    原資料表如下圖所示:

    percentile(col, p):傳回 col 的 p%分位數。

    col 列為 int 型;p 取值 0~1;percentile(col, 0.5):取中位數。

    範例:select percentile(`單價` ,0.5) from DB表輸入,結果如下圖所示:

    12. collect_list-傳回陣列

    主要用於生成陣列

    collect_list ( expr))。expr為欄位名

    範例:例如想要將 JSON 物件列生成為陣列列,則可以使用 concat_ws 和 collect_list 組合。

    原物件列資料如下圖所示(資料表名稱為 JSON生成):

    使用公式:SELECT CONCAT("[",concat_ws(",",collect_list(`JSON_DATA`)),"]") as a from JSON生成,即將 JSON_DATA 欄位生成為陣列形式,如下圖所示:

    注:JSON生成表需要手動點選輸入源下的資料表。

    附件列表


    主題: 資料開發-定時任務
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    獲取幫助
    線上支援
    獲取專業技術支援,快速幫助您解決問題
    工作日9:00-12:00,13:30-17:30在线
    頁面反饋
    針對當前網頁的建議、問題反饋
    售前咨詢
    業務咨詢
    電話:0933-790886或 0989-092892
    郵箱:taiwan@fanruan.com
    頁面反饋
    *問題分類
    不能為空
    問題描述
    0/1000
    不能為空

    反馈已提交

    网络繁忙