MySQL 聚合函数 和 分组查询(初级)
| ?函數(shù)名稱 | 功能 |
| ?sum | 返回選取的某列值的總和 |
| ?max | 返回選取的某列的最大值 |
| ?min | 返回選取的某列的最小值 |
| ?avg | 返回選取的某列的平均值 |
| ?count | 返回選取的某列或記錄的行數(shù) |
使用 group by 子句可以將數(shù)據(jù)劃分到不同的組中,實(shí)現(xiàn)對(duì)記錄的分組查詢。group by 從英文字面的意義上可以理解為“根據(jù)(by)一定的規(guī)則進(jìn)行分組(group)”,該子句的作用是通過(guò)一定的規(guī)則將一個(gè)數(shù)據(jù)集劃分成若干個(gè)小的區(qū)域,然后針對(duì)這若干個(gè)小區(qū)域進(jìn)行統(tǒng)計(jì)匯總。
group by 字段列表 [having 條件表達(dá)式 ]group by 子句通常與聚合函數(shù)同時(shí)使用,如 max()、min()、count()、sum() 和 avg()。?
?having 子句和 where 子句均用于過(guò)濾數(shù)據(jù),兩者的區(qū)別在于:where 子句對(duì)結(jié)果集進(jìn)行過(guò)濾篩選,而 having 子句則對(duì)分組的結(jié)果進(jìn)行篩選。
group by 子句將結(jié)果集分為若干個(gè)組,使用聚合函數(shù)可以對(duì)每個(gè)組內(nèi)的數(shù)據(jù)進(jìn)行信息統(tǒng)計(jì),有時(shí)對(duì)各個(gè)組進(jìn)行匯總計(jì)算時(shí),需要在分組之后再加上一條匯總記錄,這個(gè)任務(wù)可以通過(guò) with rollup 選項(xiàng)來(lái)實(shí)現(xiàn)。
count 和 sum 函數(shù)的區(qū)別: sum 函數(shù)是對(duì)符合條件的記錄的數(shù)值列求和,count 函數(shù)的值是滿足查詢條件的結(jié)果(或記錄)個(gè)數(shù)。count(column) 用于統(tǒng)計(jì) column 列不為 null 的記錄個(gè)數(shù)。 如何對(duì)查詢結(jié)果進(jìn)行過(guò)濾之后再分組統(tǒng)計(jì): 先使用 where 子句表達(dá)式對(duì)查詢結(jié)果進(jìn)行過(guò)濾篩選;然后,再使用 group by 子句對(duì) where 子句的輸出進(jìn)行分組統(tǒng)計(jì)。 having 子句的用法: having 子句的作用是篩選滿足條件的組,即在分組之后過(guò)濾數(shù)據(jù)。having 子句的位置放在 group by 子句之后,常包含聚合函數(shù)。?
總結(jié)
以上是生活随笔為你收集整理的MySQL 聚合函数 和 分组查询(初级)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python面向对象怎么解决_Pytho
- 下一篇: linux重启网卡的命令行,linux系