数据分组是对相同类别的数据进行汇总,而数据透视表是通过对行或列的不同组合对数据进行汇总,所使用的汇总方法有求和、计数、平均值、标准差等,本文使用SQL对数据进行数据分组和数据透视,下面一起来学习。普通分组 普通的数据分组这里使用的GROUPBY函数,同时使用COUNT函数进行计数。数据分组SELECTSsex,COUNT(SId)as人数fromStudentGROUPBYSsex; 分组筛选 如何对于分组后的结果进行筛选?这里不能使用WHERE函数,应该使用HAVING进行筛选,只要后面跟筛选条件即可。数据分组SELECTSsex,COUNT(SId)as人数fromStudentGROUPBYSsexHAVINGCOUNT(SId)5; CASEWHEN分组 CASEWHEN函数用来对数据进行判断和分组,下面的代码中我们对score列的值进行判断,score大于90为优秀,score大于80为良好,score大于70为中等,score大于60为及格,否则不及格,结果使用成绩分组字段进行标记。score字段分组SELECT,CASEWHENscore90THEN优秀WHENscore80ANDscore90THEN良好WHENscore70ANDscore80THEN中等WHENscore60ANDscore70THEN及格ELSE不及格ENDAS成绩分组FROMscore; 单列分组 数据分组可以单列分组,也可以多列分组,对于单列分组,只需要在GROUPBY后面跟一个字段就可以。单列分类汇总SELECTssex,COUNT(sid)ASidcountFROMstudentGROUPBYssexORDERBYidcountDESC; 多列分组 而对多列数据分组,可以在GROUPBY后面跟多个字段,下面这条SQL语句同时根据课程号和学号进行分组,然后以分数和降序排列。多列分类汇总SELECTCId,SId,SUM(score)ASscoresumFROMscoreGROUPBYCId,SIdHAVINGscoresum160ORDERBYscoresumDESC; 数据透视 在SQL中想要达到数据透视表的功能,需要GROUPBY与CASEWHEN结合使用,下面这条SQL语句可以计算不同分数段的人数,现用CASEWHEN对不同的分数段进行分类,然后,用GROUPBY分组,并且计数,实现数据透视功能。score字段分组SELECTCASEWHENscore90THEN优秀WHENscore80ANDscore90THEN良好WHENscore70ANDscore80THEN中等WHENscore60ANDscore70THEN及格ELSE不及格ENDASscoretype,COUNT(sid)as人数FROMscoregroupbyscoretypeorderbyCOUNT(sid)DESC;