力扣白嫖日记(sql)

前言

练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。

今日题目:

1148.文章浏览 I
表:Views

列名 类型
article_id int
author_id int
viewer_id int
view_date date

此表可能会存在重复行。(换句话说,在 SQL 中这个表没有主键)此表的每一行都表示某人在某天浏览了某位作者的某篇文章。请注意,同一人的 author_id 和 viewer_id 是相同的。

请查询出所有浏览过自己文章的作者。结果按照 id 升序排列。


我那不值一提的想法:

首先梳理表内容,题干只给了一张浏览表,记录了文章id,作者id,以及浏览者id,和浏览日期。其次分析需求,查询出所有浏览过自己文章的作者,id升序排列。因为同一人的author_id和viewer_id是相同的,所以作者如果浏览过自己的作品,那么作者id和浏览者id肯定是相同的,直接查询author_id = viewer_id的结果,然后对作者id进行排序,得到最终结果,因为order by默认是升序,所以不用再添加参数。这里注意需要避免出现重复行,所以我们还需要在查询结果前面加个distinct。

select distinct author_id as id 
from Views
where author_id = viewer_id
order by author_id 

结果:

力扣白嫖日记(sql)_第1张图片


总结:

能运行就行。


你可能感兴趣的:(力扣刷题,leetcode,sql,数据库)