sql 某列数据全部为0则不显示该列_数据产品经理养成记(五):汇总分析
學會了如何查找數據后,接下來就要對數據進行分析處理,比如求和、平均值、加總等等。這些對數據的加工處理通過匯總函數來實現。匯總函數在之前的兩篇文章中都有涉及,這里采用概念--案例--總結的方式,集中介紹一下。
1.什么是匯總函數?
函數是SQL里的關鍵字,是一種運算命令。
通常來說,函數與字段名稱或表達式聯合使用,處理輸入的數據并產生結果。SQL包含多種類型函數,其中匯總函數為SQL提供合計信息,比如計數、總和、平均等。
常見的匯總函數有以下幾種:
注意:
1. 如果匯總函數后面有null(空值),那么都會把空值排除在外進行計算。
2.如果要計算所有的行(包括空值的行),一般用星號表示,例子如下:
select 姓名,count(*)
from student;
3.sum、avg函數,只能對數值類型的列進行計算,否則會報錯。
count、max、min函數,可以對任何類型計算。
舉個例子說明一下,這里有一張名為“student”的表,表里面的有一些學生和課程相關的信息,如下:
1.你想計算姓名這一列都多少行,需要使用‘count’函數,寫法如下:
select count(姓名)from student;2.計算成績這一列總和,寫法如下:
select sum(成績)from student;3.計算成績這一列平均值,寫法如下:
select avg(成績)from student;4.計算成績這一列的最大值、最小值,寫法如下:
select max(成績),min(成績)from student;可以發現匯總函數的寫法基本相似。通常來說,匯總函數是一種比較簡單的函數,不會單獨使用,一般都要結合其他函數(group by等)才能更好的達到分析效果。
2.數據分組函數
匯總函數是按照某一列對數據進行計算,比如計算【姓名】列的總數量,現在如果要看的細一點,分別計算男生、女生的總人數,怎么實現呢?這里就需要用到分組函數,看下面這張表:
上表一共有三行數據,通過分組函數(‘group by’)來實現分組統計。‘group by’函數一般和匯總函數一起使用。對應的寫法如下:
select 性別,count(*)from studentgroup by 性別;注意:
1.上面語句的運行順序是:第二行--第三行--第一行,也就是先選擇表,再按照條件對數據分總,最后計總顯示出來。
再舉一個例子:
你想統計出生日期大于‘1990-01-02’的男生總數、女生總數,該如何寫SQL語句?先寫出分析思路:
把上面的分析思路整理成SQL語句,如下:
select 性別,count(*) as 學生人數from student where 出生日期 > 1990-01-02’group by 性別;以上語句運行的結果如下:
3.對分組結果指定條件
上個栗子,你統計出了出生日期大于‘1990-01-02’的男生總數、女生總數后,只想顯示男生的數據,該如何寫語句呢?可以使用‘having’語句對分組結果,指定條件,寫法如下:
select 性別,count(*) as 學生人數from student where 出生日期 > 1990-01-02’group by 性別having 性別 = 男;注意:
這里為什么不用‘where’子句來指定條件?因為where只能指定行的原始數據。
‘having’,用于對分組以后數據,指定條件。
4.對查詢結果排序
統計出數據后,為了方便觀察,通常需要對數據進行排序,簡單的排序有兩種,升序、降序。我們在excel中都使用過類似的功能,那么在SQL中如何實現?
在SQL通過‘order by’函數來實現,一般有兩種排序,降序(desc):從大到小,升序(asc):從小到大。
舉個例子:
現在有一張成績表‘score’,如下。現在你想計算出平均成績大于80分的課程,并由高到低排列,該如何寫函數?
我們先寫出分析思路,如下:
把上面的分析思路整理成SQL語句,如下:
select 課程號,avg(成績) as 平均成績from scoregroup by 課程號having avg(成績) > 80oorder by 平均成績 desc;注意:
使用‘order by’語句的時候,如果查詢的列包含空值,空值會在查詢結果的開頭展示。如果數據庫有大量數據,你只想返回一部分數據的時候,該怎么辦?可以使用limit,從查詢結果中,展示指定行的數據。寫法如下:
select *from scorelimit 2;意思就是只取前兩行數據。
匯總分析就到這里了,關于SQL的內容還有最后一節:復雜查詢,講完了會分享一案例和數據分析的基本思路。其實SQL學習來并不很很難,它就是一門工具,你使用的越多就會越熟練。要多多練習!
歡迎持續關注,公號:數據產品經理之路。
總結
以上是生活随笔為你收集整理的sql 某列数据全部为0则不显示该列_数据产品经理养成记(五):汇总分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python获取键盘事件_50-用Pyt
- 下一篇: 怎么做图片文字二维码一起_怎么做?才能让