SQL匯總統(tǒng)計與GROUP BY過濾查詢實現(xiàn)
1、匯總統(tǒng)計
介紹幾個聚集函數(shù)
有多少名學(xué)生
SELECT COUNT(*) FROM student;
SELECT COUNT(1) FROM student;
SELECT COUNT(score) FROM student;
所有學(xué)生的成績總和
SELECT SUM(score) FROM student;
所有學(xué)生成績的最高分
SELECT MAX(score) FROM student;
所有學(xué)生成績最低分
SELECT MIN(score) FROM student;
所有學(xué)生成績平均分
SELECT AVG(score) FROM student;
2、GROUT BY
如何獲取每個班級的數(shù)學(xué)成績平均分(因為學(xué)生太多,這里先不計算
成績在80分以下的學(xué)生),以便比較不同班級的成績?
SELECT class_id, AVG(score) FROM student WHERE score > 80 GROUP BY class_id
匯總原理如下:
如何統(tǒng)計不同的交易所的總的買入金額?
SELECT LEFT(stock_code,2), SUM(price * volume) FROM t_stock_trans_dtl WHERE opt_typ = '買入' GROUP BY LEFT(stock_code,2)
如何統(tǒng)計不同的交易所的不同交易類型的總的交易金額?
SELECT LEFT(stock_code,2), opt_typ, SUM(price * volume) FROM t_stock_trans_dtl GROUP BY LEFT(stock_code,2), opt_typ
SELECT里除了使用聚集函數(shù)返回的字段外,其他所有的字段都必須原樣出現(xiàn)在GROUP BY的 后面;
GROUP BY會將NULL值的行,分到同一組計算統(tǒng)計值:
SELECT teacher_id, COUNT(*) FROM student GROUP BY teacher_id
3、如何對分組統(tǒng)計的結(jié)果進行過濾
GROUP BY + HAVING
如何獲取教授15名以上學(xué)名的老師?
使用關(guān)鍵字:GROUP BY + HAVING
SELECT teacher_id, COUNT(*) FROM student GROUP BY teacher_id HAVING COUNT(*) > 15
如何獲取數(shù)學(xué)成績平均分在70分及以上的班級?
SELECT class_id, AVG(score) FROM student GROUP BY class_id HAVING AVG(score) > 70;
如何獲取每個班級的成績平均分(不計算成績在80分以下的學(xué)
生且過濾掉平均分在90分以下的班級),以便比較不同班級的成績?
SELECT class_id, AVG(score) FROM student WHERE score > 80 GROUP BY class_id HAVING AVG(score) > 90;
4、如何對分組統(tǒng)計的結(jié)果進行排序
GROUP BY + ORDER BY
如何獲取每個班級的數(shù)學(xué)成績平均分(不計算成績在80分以下的學(xué)
生),然后以平均分從高到低排序?
SELECT class_id, AVG(score) FROM student WHERE score > 80 GROUP BY class_id ORDER BY AVG(score) DESC
5、介紹SELECT語句中各個子句的書寫順序
如何獲取每個班級的數(shù)學(xué)成績平均分(不計算成績在80分以下的學(xué)
生且過濾掉平均分在90分以下的班級),然后以平均分從高到低排序?
SELECT class_id, AVG(score) FROM student WHERE score > 80 GROUP BY class_id HAVING AVG(score) > 90 ORDER BY AVG(score) DESC
6、上方用到的表
學(xué)生表
交易表
到此這篇關(guān)于SQL匯總統(tǒng)計與GROUP BY過濾查詢實現(xiàn)的文章就介紹到這了,更多相關(guān)SQL GROUP BY內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL高并發(fā)生成唯一訂單號的方法實現(xiàn)
這篇文章主要介紹了MySQL高并發(fā)生成唯一訂單號的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02mysql中order by與group by的區(qū)別
以下是對mysql中order by與group by的區(qū)別進行了詳細的分析介紹,需要的朋友可以過來參考下2013-07-07mysql數(shù)據(jù)庫decimal類型與decimal長度用法詳解
在MySQL中decimal是一種用于存儲精確數(shù)字的數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫decimal類型與decimal長度用法的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01mysql多條數(shù)據(jù)合并成一條的3種常見方法
在實際的應(yīng)用開發(fā)中,有時我們需要將多條數(shù)據(jù)合并成一條數(shù)據(jù),以便更好地進行數(shù)據(jù)分析和處理,本文就來介紹一下mysql多條數(shù)據(jù)合并成一條的方法,具有一定的參考價值2023-10-10