前言
❤欢迎大家阅读我的文章呀❤
今天学习聚合分组查询
希望你们在我的文章当中能有所收获!!!
SLogan:日拱一卒,功不唐捐!
知识点回顾
表的创建、修改与删除
注意点
自增ID:AUTO_INCREMENT
主键:PRIMARY KEY
唯一性约束:UNIQUE KEY
非空约束:NOT NULL
设置默认值:DEFAULT 0
当前时间戳:CURRENT_TIMESTAMP
评论/注释:COMMENT
修改表:
① 增加列在某列之后
alter table 增加的表格 add 增加列的名称 数据类型 位置(after level 在level 之后)
②更换列的名称及数据类型
alter table user_info change 原列名 修改列名 修改数据类型
③ 更改数据类型
alter table 表名 modify 修改列名称 数据类型 默认值等
索引创建、删除与使用:
索引创建规则
1、普通索引:
(1)alter table 表名 add index 索引名称(列名);
(2)create index 索引名称 on 表名(列名);
2、唯一索引:
(1)alter table 表名 add unique index 索引名称(列名);
(2)create unique index 索引名称 on 表名(列名);
3、全文索引:
(1)alter table 表名 add fulltext index 索引名称(列名);
(2)create fulltext index 索引名称 on 表名(列名);
一、聚合函数
【SQL123】SQL类别高难度试卷得分的截断平均值
解题思路:
本题相对来说比较繁杂的就是这个计算,去掉最大值和最小值,(总成绩-最大值-最小值)/(成绩个数-2)
然后考虑保留小数位数——1位。用ROUND( ,1)
两张表之间也需要联结,最后筛选的条件就是SQL 和hard。
代码如下:
SELECT tag,difficulty,ROUND((SUM(score)-MAX(score)-MIN(score))/(COUNT(score)-2),1) AS clip_avg_score
FROM exam_record AS B
LEFT JOIN examination_info AS A
ON A.exam_id=B.exam_id
WHERE tag='SQL' AND difficulty='hard'