温州手机网站建设wmwl,WordPress查询管理员记录,南昌 提供网站设计 公司,网站推广策略有哪些大家好#xff0c;我是空空star#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目#xff1a;1148. 文章浏览二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.其他总结前言 一、题目#xff1a;1148… 大家好我是空空star本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目1148. 文章浏览二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.其他总结前言 一、题目1148. 文章浏览
Views 表
------------------------
| Column Name | Type |
------------------------
| article_id | int |
| author_id | int |
| viewer_id | int |
| view_date | date |
------------------------
此表无主键因此可能会存在重复行。
此表的每一行都表示某人在某天浏览了某位作者的某篇文章。
请注意同一人的 author_id 和 viewer_id 是相同的。
请编写一条 SQL 查询以找出所有浏览过自己文章的作者结果按照 id 升序排列。
查询结果的格式如下所示
Views 表
----------------------------------------------
| article_id | author_id | viewer_id | view_date |
----------------------------------------------
| 1 | 3 | 5 | 2019-08-01 |
| 1 | 3 | 6 | 2019-08-02 |
| 2 | 7 | 7 | 2019-08-01 |
| 2 | 7 | 6 | 2019-08-02 |
| 4 | 7 | 1 | 2019-07-22 |
| 3 | 4 | 4 | 2019-07-21 |
| 3 | 4 | 4 | 2019-07-21 |
----------------------------------------------结果表
------
| id |
------
| 4 |
| 7 |
------
二、解题
1.正确示范①
提交SQL
select
distinct author_id as id
from Views
where author_idviewer_id
order by id;或者
select
distinct viewer_id as id
from Views
where author_idviewer_id
order by id;运行结果 2.正确示范②
提交SQL
select
viewer_id as id
from Views
where author_idviewer_id
group by id
order by id;或者
select
author_id as id
from Views
where author_idviewer_id
group by id
order by id;运行结果 3.正确示范③
提交SQL
select id
from(select author_id as id,row_number() over(partition by author_id) colfrom Viewswhere author_idviewer_id
) u where u.col1
order by id;
;运行结果 4.其他 总结 正确示范①思路 先找出所有浏览过自己文章的作者再用distinct去重再用order by排序 正确示范②思路 先找出所有浏览过自己文章的作者再用group by去重再用order by排序 正确示范③思路 先找出所有浏览过自己文章的作者再用row_number() over(partition by author_id)限定序号为1的再用order by排序。 知识点 1.distinct关键字可以对查询出的结果数据进行去重处理 2.MySQL支持使用order by语句对查询结果集进行排序处理使用order by语句不仅支持对单列数据的排序还支持对数据表中多列数据的排序。 3.group by 是在查询时先把数据按照分组字段分组出来再查询当数据量较大时group by 速度要优于 distinct