distinct 排序_SQL汇总分析(汇总函数、分组、指定条件、排序)

本文介绍了SQL的基础操作,包括汇总函数的使用、分组查询、条件筛选、排序等,并提供了实际案例帮助理解。此外还讲解了如何解析错误信息及SQL练习题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习一:汇总函数

汇总函数包括:(如果汇总函数后面写的是列名,会排除空值,如果输入*,才包含空值)

  • Count:求某列的行数
  • Sum:对某列数据求和
  • Avg:求某列数据的平均值
  • Max:求某列数据最大值
  • Min:求某列数据最小值
  • count函数(得到除去null之后的数目)
SELECT 

88329339484707906254b922eaae3f7b.png

Count(*)可以计算包含空值的数目

SELECT 

311e933d01bcc690fcc69ecaa173d403.png

sum函数

SELECT 

2135455483e7aeb792ab784d72451d33.png

Avg函数

SELECT 

1271bf9481b1743e24e4abd0e27994c5.png

max和min函数

SELECT 

9b2eef8446cdff6fc34087372212fbd7.png

DISTINCT去除重复值

SELECT 

4521ad26a4bca4329ddef04a2ccf9e68.png

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

SELECT 

be64f69fed9957cc672a08910fab3a4b.png

查询选了课程的学生人数

SELECT 

d2d8b8c337e29532d58f2932b2cf1148.png

练习二: 分组

GROUP BY分组

SELECT 

0b690628079cebb3eea179b06bf43bea.png

分组和指定查询组合

SELECT 

881e708380d06832afb80747175fd99c.png

查询各科成绩最高和最低的分

SELECT 

44c2edae043f51e48b654af3e06376cd.png

查询每门课程被选修的学生人数

SELECT 

f16082b3026c8e398b26cbac736bb9ac.png

查询男生、女生人数

SELECT 

90acea32eaeadae07e1e739807b435c2.png

练习三:对分组结果指定条件

Where只能指定行的条件,having语句可以在分组之后指定条件。

只取男生组

SELECT 

26cab7746f97729388f8065e91648980.png

查询平均成绩大于60学生的学号和平均成绩

SELECT 

a239561f200758f312d0b54c0938ffb0.png

查询至少选修两门课程的学生学号

SELECT 

7d2c976b6ae351417217455c5a6383b7.png

查询同名同姓学生名单并统计同名人数

SELECT 

74f37978706d96e63d1e8846ffae2fab.png

练习四:如何用SQL解决业务问题

  1. 将问题翻译成通俗易懂的大白话
  2. 写出分析思路
  3. 写出对应的SQL子句。先把SQL各个部分的关键字写出来,再把问题拆解之后的对应部分写到子句上。

计算每门课程的平均成绩

SELECT 

cc1c75d59cc3f3099b4a221e1c61b28a.png

计算每门课程的平均成绩,并且平均成绩大于等于80分

SELECT 

d15fbd413e30eec0ad8f715438d25d9c.png

练习五:对查询结果排序

关键字:order by 。降序(desc)、升序(asc)

计算每门课程的平均成绩,并对平均成绩大于等于80分的按成绩降序、升序排列

SELECT 

9002433a6c454975cb95d5b4b1aaf013.png

016a4f2c081ed5e1868df65225684a42.png

指定多个列名排序:将成绩表先按成绩升序排,再按课程号降序排

SELECT 

67c276cfc072896e8478ef77db76daf3.png

空值null的排序

SELECT 

aff7a3578e143cc24a7fa0bbbf9e2605.png

取出成绩表的前两行数据

SELECT 

c7a4f3bc7f64862953999fae78868ec7.png

查询不及格的课程并按课程号从大到小排列(原数据里没有不及格的课程,这里查询小于90分的课程)

SELECT 

a5543e4656d7bc5a5294e436843ba068.png

查询每门课程的平均成绩,结果按平均成绩升序排列。平均成绩相同时,按课程号降序排列

SELECT 

e261d56a81e9bc3dad33efd814fa2661.png

检索课程编号为“0002”且分数不超过90的学生学号,结果按分数降序排列

SELECT 

或者

SELECT 

94d89a246dee16087f3e4f71389855d0.png

统计每门课程的选修人数(超过2人的统计),查询结果按人数降序排序,若人数相同,按课程号升序排序

SELECT 

99263dfee5bc540da75f3d22bbe5ae8f.png

查询两门以上小于90分的同学的学号及小于90分课程的平均成绩

SELECT 

5940b7b5b50a810b526f3f71211246ab.png

练习六:如何看懂报错信息

减少SQL报错信息的前提之一,就是深入理解SQL各个子句的含义及运行顺序。

截止目前所学习的SQL子句的类型和运行顺序如下:

4591428d123b633a5a1246fbce0fec16.png

另外也要注意为数据选择正确的数据类型(字符串、数字、日期)。

练习七:SQLzoo练习题

select 

a4a8bc9d951b0396c0c0bee00c6fac98.png
select 

e74e9a43be998686483179a107845b30.png
select 

2cee8425b1d0ef93828379906a728ef3.png
select 

95368d4509a66bb269fe7c30d6b75292.png
select 

6e746a41ae557c449fe3b14b3d016334.png
select 

e0268af669a623da355c8b8adcc3076f.png
select 

e47b1d21c9cc7cfcc86cb77e0ca34672.png
select 

32f1fa65512b8acf571c28eb4b0f28fc.png
select 

或者

select 

66b688df77aeb315a202e5f296d75411.png

5090345edaaa4e453dbacc86252281e8.png
select 

cb2b23f480a7421441fffd865c12cfdc.png
select 

341cf5fdc924ffbb316ba81708bbeb42.png
select 

e7f1d5eb685fb1c33f9505c16058a21e.png
select 

7a61120ef129beee8dfa7d1f90d7d65e.png
select 

cfcebaec2aed50402b57cacb9b02c5fb.png

923126d6794685f81906ddeb077643b5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值