一、如何進行彙總分析
彙總函數
- count(<列名>) 求某列的行數,count(<列名>)列出除空值以外的行;count(*) 列出全部的行(包括空值)。distinct(<列名>)删除重複值
- sum(<列名>)對某列資料求和,隻能對數值類型的列計算。
- avg (<列名>)求某列資料的平均值 ,隻能對數值類型的列計算。
- max (<列名>)求某列資料的最大值
- min (<列名>)求某列資料的最小值
二、分組
SQL分組:group by
SQL運作順序②——③——④——①
①select 性别,count(*)
②from 學生表
③where 出生日期 > '1990-01-01'
④group by 性别;
三、對分組結果指定條件(having)
①select 性别,count(*) ----------查詢結果
②from 學生表 ----------從哪張表中查找資料
③where 出生日期 > '1990-01-01' ---------- 查詢條件
④group by 性别 ---------- 分組
⑤having count(*) > 1; ---------- 對分組結果指定條件
四、用SQL解決業務問題
1、翻譯成大白話
2、寫出分析思路
3、寫出對應的SQL子句
五、對查詢結果排序(order by)
降序(desc)、升序(asc)
含有空值(null)的列排序,在查詢結果的開頭顯示
從查詢結果中取出指定行:limit
六、如何看懂報錯資訊
常見錯誤:
在group by中使用了select裡的别名
在where中使用彙總函數
字元串類型的數字
七、SQL運作順序
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SYiZWZwQTZxYWZ3QWY4MDO1ETZyMTMmNzY3MDZ5ETNk9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
八、練習
1、查詢課程編号為“0002”的總成績
2、查詢選了課程的學生人數
3、查詢各科成績最高和最低的分
4、查詢每門課程被選修的學生數
5、查詢男生、女生人數
6、查詢平均成績大于60分學生的學号和平均成績
7、查詢至少選修兩門課程的學生學号
8、查詢同名同姓學生名單并統計同名人數
9、查詢不及格的課程并按課程号從大到小排列
10、查詢每門課程的平均成績,結果按平均成績升序排序,平均成績相同時,按課程号降序排列
11、檢索課程編号為“04”且分數小于60的學生學号,結果按按分數降序排列
12、統計每門課程的學生選修人數(超過2人的課程才統計),要求輸出課程号和選修人數,查詢結果按人數降序排序,若人數相同,按課程号升序排序
13、查詢兩門以上不及格課程的同學的學号及不及格課程的平均成績