<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          利用 SQL 實現(xiàn)數(shù)據(jù)分組與透視

          共 1564字,需瀏覽 4分鐘

           ·

          2021-06-12 17:24

          數(shù)據(jù)分組是對相同類別的數(shù)據(jù)進行匯總,而數(shù)據(jù)透視表是通過對行或列的不同組合對數(shù)據(jù)進行匯總,所使用的匯總方法有求和、計數(shù)、平均值、標(biāo)準(zhǔn)差等,本文使用SQL對數(shù)據(jù)進行數(shù)據(jù)分組和數(shù)據(jù)透視,下面一起來學(xué)習(xí)。


          普通分組

          普通的數(shù)據(jù)分組這里使用的GROUP BY函數(shù),同時使用COUNT函數(shù)進行計數(shù)。

          #數(shù)據(jù)分組SELECT Ssex,COUNT(SId) as '人數(shù)' from StudentGROUP BY Ssex;

          分組篩選

          如何對于分組后的結(jié)果進行篩選?這里不能使用WHERE函數(shù),應(yīng)該使用HAVING進行篩選,只要后面跟篩選條件即可。

          #數(shù)據(jù)分組SELECT Ssex,COUNT(SId) as '人數(shù)' from StudentGROUP BY SsexHAVING COUNT(SId)>5;



          CASE WHEN分組

          CASE WHEN函數(shù)用來對數(shù)據(jù)進行判斷和分組,下面的代碼中我們對score列的值進行判斷,score大于90為優(yōu)秀,score大于80為良好,score大于70為中等, score大于60為及格,否則不及格,結(jié)果使用成績分組字段進行標(biāo)記。
          #score字段分組SELECT *,CASEWHEN score>90 THEN '優(yōu)秀'WHEN score>=80 AND score<90 THEN '良好'WHEN score>=70 AND score<80 THEN '中等'WHEN score>=60 AND score<70 THEN '及格'ELSE '不及格' END AS '成績分組'FROM score;

          單列分組

          數(shù)據(jù)分組可以單列分組,也可以多列分組,對于單列分組,只需要在GROUP BY后面跟一個字段就可以。

          #單列分類匯總SELECT ssex,COUNT(sid) AS id_count FROM studentGROUP BY ssexORDER BY id_count DESC;

          多列分組

          而對多列數(shù)據(jù)分組,可以在GROUP BY后面跟多個字段,下面這條SQL語句同時根據(jù)課程號和學(xué)號進行分組,然后以分?jǐn)?shù)和降序排列。

          #多列分類匯總SELECT CId,SId,SUM(score) AS score_sum FROM scoreGROUP BY CId,SIdHAVING score_sum >160ORDER BY score_sum DESC;

          數(shù)據(jù)透視

          在SQL中想要達到數(shù)據(jù)透視表的功能,需要GROUP BY與CASE WHEN結(jié)合使用,下面這條SQL語句可以計算不同分?jǐn)?shù)段的人數(shù),現(xiàn)用CASE WHEN對不同的分?jǐn)?shù)段進行分類,然后,用GROUP BY分組,并且計數(shù),實現(xiàn)數(shù)據(jù)透視功能。

          #score字段分組SELECT CASEWHEN score>90 THEN '優(yōu)秀'WHEN score>=80 AND score<90 THEN '良好'WHEN score>=70 AND score<80 THEN '中等'WHEN score>=60 AND score<70 THEN '及格'ELSE '不及格' END AS score_type,COUNT(sid) as '人數(shù)'FROM scoregroup by score_typeorder by COUNT(sid) DESC;


          點分享
          點收藏
          點點贊
          點在看
          瀏覽 58
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.一级内射 | 91成人做爰A片无遮挡直播 | www黄在线观看 | 无码性爱视频在线观看 | 国产欧美草莓视频 |