sql-分組函數

 

 每門學科最低的分數和人html

SELECT * FROM stu WHERE (stu.`score`,stu.`course`) IN ( SELECT MIN(score),course FROM stu GROUP BY course )

 

分組前的篩選 原始表 篩選條件位於group by子句以前 where關鍵字   不能在where 後使用組函數
分組後的篩選 分組後的結果 篩選條件位於group by子句以後 having關鍵字函數

 

經常使用的組函數:spa

AVG([distinct] expr)3d

求平均值code

COUNT({*|[distinct] } expr)htm

統計行的數量blog

MAX([distinct] expr)ci

求最大值get

MIN([distinct] expr)it

求最小值

SUM([distinct] expr)

求累加和

 

若是統計的列中只有NULL值,那麼MAX和MIN就返回NULL

 

默認狀況下,組函數忽略列值爲null的行,不參與計算

 

 2)組函數不容許嵌套,例如:count(max(…));

 3)組函數的參數能夠是列或是函數表達式;

 4)一個SELECT子句中可出現多個彙集函數。

注意:要想列值爲NULL的行也參與組函數的計算,必須使用IFNULL函數對NULL值作轉換。

 

 

SELECT select_expr [, select_expr ...] [FROM table_references [PARTITION partition_list] [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}]

1)HAVING能夠單獨使用而不和GROUP BY配合,若是隻有HAVING子句而沒有GROUP BY,表中全部的行分爲一組

 

2)HAVING子句中能夠使用組函數

 

3)HAVING子句中的列,要麼出如今一個組函數中,要麼出如今GROUP BY子句中(不然出錯)

相關文章
相關標籤/搜索