【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

相关推荐
IvanCodes3 分钟前
MySQL 数据库备份与还原
大数据·数据库·sql·mysql
mahuifa16 分钟前
ubuntu18.04编译qt5.14.2源码
开发语言·数据库·qt
Freedom℡1 小时前
Spark,连接MySQL数据库,添加数据,读取数据
数据库·hadoop·spark
Code哈哈笑2 小时前
【图书管理系统】用户注册系统实现详解
数据库·spring boot·后端·mybatis
2401_837088502 小时前
SQL性能分析
数据库·sql
瓜皮弟子头很铁2 小时前
多项目共用SQL 添加需要字段
数据库·sql
冰茶_2 小时前
掌握LINQ:查询语法与方法语法全解析
sql·学习·microsoft·微软·c#·linq
CryptoRzz2 小时前
股票数据源对接技术指南:印度尼西亚、印度、韩国
数据库·python·金融·数据分析·区块链
Pluto_CSND3 小时前
hbase shell的常用命令
大数据·数据库·hbase
哈哈真棒3 小时前
sparkSQL读入csv文件写入mysql(2)
数据库·mysql