一、题目:求关注者的数量
本题主要考验
-
分组查询
-
字符串函数count统计人数
-
排序
1 准备工作
Create table If Not Exists Followers(user_id int, follower_id int);
Truncate table Followers;
insert into Followers (user_id, follower_id) values ('0', '1');
insert into Followers (user_id, follower_id) values ('1', '0');
insert into Followers (user_id, follower_id) values ('2', '0');
insert into Followers (user_id, follower_id) values ('2', '1');
# 编写解决方案,对于每一个用户,返回该用户的关注者数量。 # 按 user_id 的顺序返回结果表。
示例 1:
输入:
Followers表:
输出:
2 分析
3 实现
select
user_id,
count(follower_id) followers_count -- 关注者总人数
from followers
group by user_id -- 对用户id分组
order by user_id; -- 对用户id排序
二、题目:只出现一次的最大数字
本题主要考验
-
分组查询
-
聚合函数
-
having过滤
1 准备工作
Create table If Not Exists MyNumbers (num int);
Truncate table MyNumbers;
insert into MyNumbers (num) values ('8');
insert into MyNumbers (num) values ('8');
insert into MyNumbers (num) values ('3');
insert into MyNumbers (num) values ('3');
insert into MyNumbers (num) values ('1');
insert into MyNumbers (num) values ('4');
insert into MyNumbers (num) values ('5');
insert into MyNumbers (num) values ('6');
#单一数字 是在 MyNumbers 表中只出现一次的数字。
# 找出最大的 单一数字 。如果不存在 单一数字 ,则返回 null 。
示例 1:
输入:
MyNumbers表:
输出:
示例 2:
输出:
解释:输入的表中不存在单一数字,所以返回 null 。
2 分析
3 实现
select
max(num) num -- 查询最大数字
from (select
*
from MyNumbers
group by num -- 子查询对数字分组
having count(num) =1) t; -- 过滤条件 having