-
1149. 文章浏览 II - 力扣(LeetCode)
-
目标
-
输入
表: Views article_id author_id viewer_id view_date 1 3 5 2019/8/1 3 4 5 2019/8/1 1 3 6 2019/8/2 2 7 7 2019/8/1 2 7 6 2019/8/2 4 7 1 2019/7/22 3 4 4 2019/7/21 3 4 4 2019/7/21 -
输出
输出 ID 5 6
-
-
分析
编写解决方案来找出在同一天阅读至少两篇文章的人。
结果按照 id 升序排序。表: Views 输出 article_id author_id viewer_id view_date ID 1 3 5 2019/8/1 5 3 4 5 2019/8/1 6 1 3 6 2019/8/2 2 7 7 2019/8/1 2 7 6 2019/8/2 4 7 1 2019/7/22 3 4 4 2019/7/21 3 4 4 2019/7/21 分组聚合 ID 5 6 -
实现
Create table If Not Exists Views (article_id int, author_id int, viewer_id int, view_date date); Truncate table Views; insert into Views (article_id, author_id, viewer_id, view_date) values ('1', '3', '5', '2019-08-01'); insert into Views (article_id, author_id, viewer_id, view_date) values ('3', '4', '5', '2019-08-01'); insert into Views (article_id, author_id, viewer_id, view_date) values ('1', '3', '6', '2019-08-02'); insert into Views (article_id, author_id, viewer_id, view_date) values ('2', '7', '7', '2019-08-01'); insert into Views (article_id, author_id, viewer_id, view_date) values ('2', '7', '6', '2019-08-02'); insert into Views (article_id, author_id, viewer_id, view_date) values ('4', '7', '1', '2019-07-22'); insert into Views (article_id, author_id, viewer_id, view_date) values ('3', '4', '4', '2019-07-21'); insert into Views (article_id, author_id, viewer_id, view_date) values ('3', '4', '4', '2019-07-21'); SELECT * FROM Views; SELECT DISTINCT viewer_id ID FROM Views GROUP BY view_date,viewer_id HAVING COUNT(DISTINCT article_id)>=2 ORDER BY viewer_id
-
小结
分组聚合