sql-基礎-聚合函數

  將聚合函數分爲三類,數字,字符串,其他。

1、通用格式

  格式:aggregate_function_name( [ALL | DISTINCT] expression )

  [within_group_specification]

  [filter_clause]

  [OVER window_clause]

  說明:

     aggregate_function_name聚合函數的名稱

  all | distinct exrpession是否去除重複項,所有的聚合函數都會忽略null,除count(*),

  within_group_specification

  filter clausemysql不支持,等價於having語句。格式爲filter(where condition);

  over window_clause: over窗口函數, 簡單格式爲over(partition by column order by desc | asc);

2、數字

select avg(column_name); // 求平均數
select sum(column_name); // 求和
select min(column_name); // 最小值
select sum(column_name); // 最大值
select stddev_pop(column) 或stddev(column); // 計算標準差
select var_pop(column) 或 variance(column) // 計算總體方差(總體標準差的平方)
select count(*)或count(column_name); // 統計行數

3、字符串

  3.1 group_concat

  格式:

  group_concat([distinct] expr [order by [asc | desc]] [separator])

  描述:將每組內部的數據按照指定的分隔符,排序方式拼接起來。

  參數:

  distinct首先將組內部的數據去重

  expr表達式,列名,或者函數返回結果等等

  order by asc | desc指定排序, 默認值爲asc

  separator分隔符

  示例:假設存在兩條(1,a); (1,b), (2,a)4條數據; 以num進行分組

group_concat(str); // 返回(a,a,b); (a)
group_concat(str order by desc); // 返回(b,a,a); (a)
group_concat(distinct str order by desc); // 返回(b,a); (a)
group_concat(str separator ‘-’); // 返回(a-a-b); (a)

4、其他

  4.1  grouping

  格式:grouping(column)

  說明:當使用rollup, cube等類似的關鍵字時,會由系統生成統計行,grouping用於標識該行是否由系統生成,0表示否,1表示是。

  示例:

  // 消費表,根據日期統計消費總額。

  SELECT date, sum( amount ) AS total, grouping ( date ) AS 'grp'  FROM consume GROUP BY date WITH ROLLUP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章