30分钟学会mysql_30分钟回顾MySQL语法(下)
六.聚集函數
使用聚集函數,可以方便的分析數據,主要有以下幾種應用場景:
1.確定表的行數 (統計)
2.對某一列值進行求和
3.找出表的列 最大值,最小值 或平均值
特點: 使用聚集函數,返回的結果 是單行單列
用處:一般用于子查詢 或? 與分組搭配使用.? 更多的是搭配分組使用
以下函數 distinct 為可選值
6.1 AVG([DISTINCT] expr)? ? ?#求某一列平均值 會自動去除 內容為null 的列
例如:select avg(age) from student # 求 學生的平均年齡
6.2 COUNT([DISTINCT] expr)? #統計某一列出現的行數?會自動去除?內容為null 的列
例如: select * from student? ?# 統計共有多少條學生記錄
6.3 MAX([DISTINCT] expr)? #求出某一列的最大值
例如: select max(age) from student? ?# 計算學生中最大的年齡是
6.4 MIN([DISTINCT] expr)? #求出某一列的最小值
例如: select min(age) from student? ?# 計算學生中最小的年齡是
max 與 min 通常用來查找 數值或日期的最 大/小 值
6.5 SUM([DISTINCT] expr)? # 對某一列的所有值進行求和
例如: select sum(age) from student? ?# 統計學生年齡的總和
七.數據分組
一般聚集函數都是與分組搭配使用,分組是按照某一特點 把表中的數據分成多個組,分組后分別再進行聚集操作
6.1 關鍵字 : group by cloum
select sex,count(*) as 總人數? from? student group by sex #統計不同性別的人數
特點:先分組 再聚集
需注意:
1.雖然沒有明確要求, 但是一般 用于分組的列 , 都要在 select 語句中查詢出
2.關鍵字優先級: group by? 必需在 where 語句之后 , order by 之前
3.group by 后不可跟聚集函數, 不可跟別名
4.如果分組中存在null值, 會將null單獨作為一個分組. 如果有多個null ,可將多個null作為一個分組
6.2 過濾分組數據 HAVING
where 是對行數據進行過濾, 不存在分組的概念,如果要對組內的數據再進行過濾,則需要使用另一個關鍵字 HAVING5
HAVING支持所有的 where子句中的操作符,語法完全一致 .
舉個例子 :從學生表中分別統計男生,女生中 ,年齡在20歲以上的 人數,并且人數在5個以上
select sex,count(*)? from student where age > 20?group by sex? having count(*) > 5
having 后的表達式,必須是 select 后面出現的非別名的有效表達式,
6.3 分組后排序 按照人數進行排序 (各個關鍵字的順序不可以錯)
select sex,count(*)? from student?where age > 20?group by sex? having count(*) > 5
6.4 關鍵字的順序
從前至后: select? , from? , where? , group by ,? ?having ,? order by? ,limit
原文:https://www.cnblogs.com/lzzRye/p/9359284.html
總結
以上是生活随笔為你收集整理的30分钟学会mysql_30分钟回顾MySQL语法(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql错误消息1_MySQL出错信息
- 下一篇: mysql 一键脚本_mysql一键安装