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