【SQL每日一练】分组过滤练习题

文章目录


前言

题目:现在运营想查看每个学校用户的平均发贴和回帖情况,寻找低活跃度学校进行重点运营,请取出平均发贴数低于5的学校或平均回帖数小于20的学校。

复制代码
drop table if exists user_profile;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`gpa` float,
`active_days_within_30` int ,
`question_cnt` float,
`answer_cnt` float
);
INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4,7,2,12);
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学',4.0,15,5,25);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2,12,3,30);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6,5,1,2);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8,20,15,70);
INSERT INTO user_profile VALUES(6,2131,'male',28,'山东大学',3.3,15,7,13);
INSERT INTO user_profile VALUES(7,4321,'male',28,'复旦大学',3.6,9,6,52);

MySQL语法

代码如下:

复制代码
select university,AVG(question_cnt) as avg_question_cnt,AVG(answer_cnt) as avg_answer_cnt from user_profile 
group by university having avg_question_cnt< 5 or avg_answer_cnt <20 

注意:

  1. WHERE 关键字无法与合计函数一起使用;

  2. SQL语句执行顺序

    FROM - ON - JOIN - WHERE - GROUP BY - avg,sum.... - HAVING - SELECT - DISTINCT - ORDER BY - LIMIT

(8) SELECT (9) DISTINCT

(1) FROM

(3) JOIN

(2) ON

(4) WHERE

(5) GROUP BY

(6) avg,sum...

(7) HAVING

(10) ORDER BY

(11) LIMIT

相关推荐
搞不懂语言的程序员1 小时前
备忘录模式深度解析与实战案例
数据库·python·备忘录模式
手揽回忆怎么睡3 小时前
mongodb学习
数据库·学习·mongodb
LL1681993 小时前
SSM考研助手管理系统
java·服务器·开发语言·数据库·学习
胡萝卜糊了Ohh3 小时前
利用IDEA开发Spark-SQL
sql·spark·intellij-idea
veminhe6 小时前
Node.js 数据库 CRUD 项目示例
数据库·node.js
HX科技6 小时前
树莓派_利用Ubuntu搭建gitlab
数据库·ubuntu·gitlab
pursue.dreams6 小时前
Windows 下 MongoDB ZIP 版本安装指南
数据库·windows·mongodb
煤烦恼6 小时前
Spark-SQL核心编程(二)
大数据·sql·spark
qiandeqiande7 小时前
数据集成工具推荐,支持数据库、API、消息文件等集成技术,并具备低代码与可视化配置特性
数据库·低代码·系统集成
betazhou7 小时前
基于Windows通过nginx代理访问Oracle数据库
数据库·nginx·oracle·代理