sql 分组求和_从零学会SQL:汇总分析 D3
2020年3月24日 星期二
大綱:
1 匯總分析
匯總函數count:求某列的行數;
計算教師姓名這一列非空值的行數:select count(教師姓名) from teacher;
計算所有的行數:select count(*) from teacher;
select count(成績) from score; 計算score表格成績列有多少行
select count(distinct 成績) from score; 計算score表格成績列有多少不重復值的行
count(*)sum:某列數值相加的總和,只能對數值類型進行計算。
select sum(成績) from score; 對表格score的成績一列求和;
avg:求平均值,只能對數值類型進行計算;
select avg(成績) from score; 對表格score的成績一列求和;均值;
max,min:最大,最小值
select max(成績) ,min(成績)from score;
練習:
練習題2 sql分組:group by
分組計算的原理
原理對應的sql的語句
sql語句sql運行順序展開Sql的運行順序:
1.先運行藍框里的子句
2.Select子句
練習:
查詢各科成績的最高和最低分
查詢每門課程被選修的學生數
查詢男生、女生人數
查詢每個學生的最高、最低分
3 對分組結果指定條件
having 對分組的結果再加條件限制
where 指定行的條件
Sql的運行順序:
1.先運行藍框里的子句
2.Select子句
練習:
查詢平均成績大于60分學生的學號和平均成績
查詢至少選修兩門課程的學生學號
查詢同名同姓學生名單并統計同名人數
4 用sql解決業務問題
翻譯成大白話——寫出分析思路——寫出對應的sql子句
兩個栗子:
分析思路5 對查詢結果排序——order by & limit
order by
降序desc:從大到小
升序asc :從小到大
特殊情況:
指定多個列名進行排序,從左到右(sql的):即同時有多個升序asc、降序desc。
空值null的排序:優先,可用于空值數據的篩除。
limit:從查詢結果中取出指定行
練習:
7 如何看懂報錯信息
錯誤1:group by中使用select中定義的別名
疑問sql是先運行group by子句,此時sql無法識別別名是什么。
錯誤2:在where中使用聚合函數
where中不能使用聚合函數
錯誤3:字符串類型的數字
為什么數據列的最大值與sql運算值不一樣??
表中填充數值時,如果數值類型選擇錯誤,再對數值進行運算,就會按數值類型進行運算
最后記住一張表:
sqlzoo練習
如果字符串有包含特殊符號
原始數據因為題目要求這兩個科目排在后面,所以引入subject in ('Physics','Chemistry'),subject in ('Physics','Chemistry')返回值(0或者1),會對每一個subject做一個if的判斷,有的是1,沒有的是0,再用order by把這些值排序在下面。0排在前面,1排在后面。
總結
以上是生活随笔為你收集整理的sql 分组求和_从零学会SQL:汇总分析 D3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: net4.0 程序没反应_@Java程序
- 下一篇: 铁棍山药粉的功效与作用、禁忌和食用方法