加入收藏 | 设为首页 | 会员中心 | 我要投稿 成都站长网 (https://www.028zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据分析进阶-SQL汇总查询

发布时间:2022-09-30 14:04:56 所属栏目:MsSql教程 来源:未知
导读: 处理数据的过程中总免不了对数据进行加总、排序、去重,Excel里有这些功能或是提供相关的函数,那SQL能不能实现这些功能呢?答案是肯定的,这篇文章就将记录我练习使用SQL中汇总、排序功能

处理数据的过程中总免不了对数据进行加总、排序、去重,Excel里有这些功能或是提供相关的函数,那SQL能不能实现这些功能呢?答案是肯定的,这篇文章就将记录我练习使用SQL中汇总、排序功能的过程。

文章目录

汇总函数分组对查询结果做排序选出TopN条记录查询重复出现N次的记录

正式开始之前mssql 按关键字排序,我先放上我数据库里的表,以便核对结果:

联想g470电脑按开关键起动不了_三星按关键屏还亮_mssql 按关键字排序

学生表

联想g470电脑按开关键起动不了_mssql 按关键字排序_三星按关键屏还亮

成绩表

mssql 按关键字排序_三星按关键屏还亮_联想g470电脑按开关键起动不了

教师表

一、汇总函数

mssql 按关键字排序_联想g470电脑按开关键起动不了_三星按关键屏还亮

联想g470电脑按开关键起动不了_mssql 按关键字排序_三星按关键屏还亮

查询有多少名教师

联想g470电脑按开关键起动不了_三星按关键屏还亮_mssql 按关键字排序

查询有多少名学生选修过课程(对查询结果去重)

三星按关键屏还亮_联想g470电脑按开关键起动不了_mssql 按关键字排序

查询课程编号为'0002'的总成绩

二、分组

group by:SQL中实现分组的关键字,group by 常与汇总函数和having关键字一起出现。

运行顺序

④select 性别,count(*)

①from student

②where 出生日期>'1993-01-01'

③group by 性别;

三星按关键屏还亮_联想g470电脑按开关键起动不了_mssql 按关键字排序

计算男女学生各有多少个

mssql 按关键字排序_联想g470电脑按开关键起动不了_三星按关键屏还亮

求平均分大于等于80分的课程

三、怎么排序

order by 列名1,列名2 ... ASC/DESC:SQL语句中对查询结果排序的关键字。它有两种选择:升序(ASC)or降序(DESC)

当by后面有多个列时,可以以多个列为标准做排序,顺序如下:

①:按列名1 升序/降序 排序

②:如果存在有些行在列1中有相同的值,则以列名2为标准 升序/降序 排序

...

直到所有的行都不能再进一步排序或是已经使用了order by之后所有的列来排序。

tips:应该给每一个列都指明是按什么顺序排序,否则对于新手来说容易弄混,例如order by 学号,姓名 DESC 实际上学号是按默认的(ASC)升序排列的,而不是和姓名一起用降序排列。

例如:

联想g470电脑按开关键起动不了_mssql 按关键字排序_三星按关键屏还亮

tips:group by之后不要跟别名!因为group by运行之前,select还没有执行,mysql不知道有这个别名。

mssql 按关键字排序_三星按关键屏还亮_联想g470电脑按开关键起动不了

三星按关键屏还亮_联想g470电脑按开关键起动不了_mssql 按关键字排序

查询有学生挂科的课程,并且将结果从高到低排序

tips:order by 默认的排序顺序是ASC,即升序排序。除此之外,order by应该放在SQL语句的末尾,但是如果有limit,则放在limit之前。

四、节选查询结果

limit N:显示前N条记录

limit N,M:从第N+1条记录开始,显示M条记录。N从零开始。

例如:

三星按关键屏还亮_联想g470电脑按开关键起动不了_mssql 按关键字排序

取前四条记录

mssql 按关键字排序_三星按关键屏还亮_联想g470电脑按开关键起动不了

从第二条记录开始,取三条记录显示

有了limit,数据分析时取TopN的问题就迎刃而解啦!

五、查询重复出现N次的记录

使用group by对要统计重复情况的字段做分组,再用having子句求各个分组的重复次数,即having count(重复字段)>=N

(编辑:成都站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!