反馈已提交

网络繁忙

SparkSQL聚合函数

  • 文档创建者:Roxy
  • 历史版本:4
  • 最近更新:Roxy 于 2023-08-28
  • 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在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持