聚合函數(shù)
AVG:求某一列平均值
COUNT:統(tǒng)計總行數(shù)
SUM:計算列總和
MIN:求某一列的最小值
MAX:求某一列的最大值
AVG:求某一列平均值
SELECT AVG(age) FROM studentinfo;
求某一列值(起一個別名)
SELECT AVG(age) as avgage? FROM studentinfo;
SELECT MIN(age) as minage? FROM studentinfo;
SELECT MAX(age) as maxage? FROM studentinfo;
SELECT SUM(age) FROM studentinfo;
SELECT COUNT(*) FROM studentinfo;
DISTINCT去重讥巡,只計算不同的值
SELECT SUM(DISTINCT age) FROM studentinfo;
添加條件,進(jìn)行聚合函數(shù)的計算
SELECT COUNT(gender) FROM studentinfo WHERE gender=1;
SELECT COUNT(gender) FROM studentinfo WHERE gender=0;
分組跟聚合函數(shù)的使用,統(tǒng)計每一個分組下有多少人(有多少條記錄)
SELECT count(*) as total,age FROM studentinfo GROUP BY age;
統(tǒng)計分組的信息
SELECT count(*), avg(age),min(age),sum(age),gender FROM studentinfo GROUP BY gende;
group by 與 group_concat(列)
group_concat(字段名)可以作為一個輸出字段來使用,
表示分組之后刀荒,根據(jù)分組結(jié)果,使用group_concat()來放置每一組的某字段的值的集合
SELECT gender,group_concat(student_name),group_concat(age) FROM studentinfo GROUP BY gender;
group by + with rollup
在最后新增一行,來記錄當(dāng)前列里所有記錄的總和
SELECT gender,count(*) FROM studentinfo GROUP BY gender with rollup;
HAVING
HAVING非常類似于WHERE
唯一的差別是WHERE過濾行华畏,而HAVING過濾分組
having 條件表達(dá)式:用來分組查詢后指定一些條件來輸出查詢結(jié)果
having作用和where類似,但having只能用于group by
SELECT COUNT(),age,adress FROM customers GROUP BY age,adress HAVING COUNT() >= 2;