昨天我們學習了SQL簡單查詢,學會了SQL的幾本查詢語句,今天我們來學習第三關--彙總分析,來運用SQL進行彙總分析
- 彙總分析
- 分組
- 對分組指定條件
- 用SQL解決業務問題
- 對查詢結果排序
- 如何看懂報錯資訊
1.彙總分析
彙總函數:
1)count:求某列的行數
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CNhNDOwgzNzIjZlJWNmZWMhJDMiRGNxITYkN2YyImMx8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
如果函數輸入的是列名,不計算null所在的行
如果count函數輸入的是*,表示全部行數,這樣就計算了null所在的行
2)sum:對某列資料求和
3)avg:對某列資料求平均值
需要注意的是,隻有數值類型的列才可以執行函數哦!
4)max:對某列資料求最大值
5)min:對某列資料求最小值
如何組合使用函數?
如何去除重複項再執行函數運算?
在列名前加入distinct就可以去除重複項再進行計算啦
練習1:查詢課程編号為0002的總成績
練習2:選了課程的人數:
2.分組(group by )
對學生性别進行分組,再計算人數
運作順序:
練習1:查詢各科成績最高分和最低分
練習2:查詢沒門課程選修人數
練習3:查詢男生人數和女生人數
3.對分組結果指定條件(having):
篩選出人數>1的組
練習1:查詢平均成績大于60分的學生的學号和平均成績
練習2:查詢至少選修兩門課程的學生學号
練習3:查詢同名同姓學生名單并統計同名人數
4.用SQL解決業務問題?
1)翻譯成大白話
2)寫出分析思路:找出關鍵詞,把問題的每個部分拆解到對應的字句中,寫上分析思路
3)寫出對應的SQL子句
練習:每門課程的平均成績并且平均成績大于等于80分
對查詢結果排序(order by )
SQL中用order by子句對查詢結果進行排序。需要注意的是,空值(null)會顯示在資料前幾行。
- 降序(desc):從大到小
- 升序(asc):從小到大
另外,若想從查詢結果中取出指定行,使用limit子句。
練習1:查詢不及格的課程并按課程号從大到小排列
練習2:查詢每門課程的平均成績,結果按平均成績升序排序。平均成績相同時,按課程号降序排序
練習3:檢索課程編号為‘04’且分數小于60的學生學号,結果按分數降序排序
運作順序:
6.如何看懂報錯資訊?
在運作SQL中,若運作成功,則會在查詢結果出顯示表資料;若報錯,就會出現Err(error)。并且在“資訊”中可檢視具體的錯誤資訊内容找到出錯處。
寫語句過程中尤其要注意符号的書寫,必須是英文;注意各個子句之間的聯系和先後關系,各個子句的使用條件;注意字元類型等。
寫在最後:
SQLZOO這個網站可以線上練習哦