MySQL是一個開源的關系型數(shù)據(jù)庫管理系統(tǒng),在數(shù)據(jù)處理中,有時需要對數(shù)據(jù)進行分組計數(shù),實現(xiàn)數(shù)據(jù)統(tǒng)計的需求。Mysql分組計數(shù)可以使用GROUP BY語句和COUNT函數(shù)進行實現(xiàn)。
--語法格式 SELECT column_name, COUNT(column_name) FROM table_name GROUP BY column_name;
GROUP BY語句可以將相同的結(jié)果分組,然后對每個組使用COUNT函數(shù)進行計數(shù)。例如,我們有一個students表格,包含四個欄位id、name、score、gender,現(xiàn)在需要按性別對學生人數(shù)進行統(tǒng)計,可以使用以下代碼實現(xiàn):
SELECT gender, COUNT(*) AS count FROM students GROUP BY gender;
執(zhí)行以上代碼后,將會得到一個按性別統(tǒng)計學生數(shù)的結(jié)果集:
gender count ---------------- male 25 female 30
在以上代碼中,我們使用了COUNT(*)函數(shù)來計算每個分組的行數(shù),AS關鍵字為該列指定了別名count。注意,COUNT(*)函數(shù)是包括NULL行數(shù)的。
如果需要按其他欄位進行分組計數(shù),只需將需要分組的欄位放入GROUP BY語句中即可。例如,我們需要按成績段統(tǒng)計學生人數(shù),可以使用以下代碼實現(xiàn):
SELECT CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'F' END AS grade, COUNT(*) AS count FROM students GROUP BY grade;
執(zhí)行以上代碼后,將會得到按成績統(tǒng)計學生數(shù)的結(jié)果集:
grade count ----------- A 12 B 18 C 25 D 18 F 2
以上是MySQL分組計數(shù)的相關介紹,希望對大家有所幫助。