力扣-文章浏览

news2024/11/22 19:01:15

大家好,我是空空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_id=viewer_id
order by id;

或者

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

运行结果

2.正确示范②

提交SQL

select 
viewer_id as id
from Views
where author_id=viewer_id
group by id
order by id;

或者

select 
author_id as id
from Views
where author_id=viewer_id
group by id
order by id;

运行结果

3.正确示范③

提交SQL

select id
from(
    select author_id as id,
    row_number() over(partition by author_id) col
    from Views
    where author_id=viewer_id
) u where u.col=1
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/366050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

立项近7年,索尼产品经理分享PS VR2开发背后的故事

备受期待的索尼PS VR2终于正式发售,VR爱好者们终于有机会体验到《地平线:山之呼唤》等PS VR2独占的VR大作。近期,为了解PS VR2头显诞生背后的故事,外媒AV Watch采访到PS VR2的开发负责人Yasuo Takahashi,在本次采访中&…

尚医通 (二十二)微信支付

目录一、微信支付介绍1、微信扫码支付申请2、开发文档3、微信支付SDK二、微信支付开发2、微信支付前端整合三、订单支付后处理一、微信支付介绍 1、微信扫码支付申请 微信扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。…

若依框架整合JSP

今天接到组长任务要求SpringbootJSP完成页面渲染,因为是用的若依框架,一上午零零散散的找了很多资料和视频,没有达到理想的结果,在下午中午弄出来了,于是整理出来供大家查看引用。(单纯Springboot项目怎么建…

webRTC学习-基础知识

webRTC学习1、webRTC简介1.1什么是webRTC?1.2、作用2、webRTC通信原理2.1、媒体协商(SDP)2.2、网络协商(candidate)2.2.1、STUN2.2.2、TURN2.3、媒体协商网络协商数据的交换通道webRTC官网1、webRTC简介 1.1什么是web…

wiblogic托管服务器 节点管理 日志文件

创建和配置托管服务器 配置托管服务器 启动托管服务器 startManagedWebLogic.cmd server1 http://localhost:7001 startManagedWebLogic.cmd server3 http://localhost:7001 配置和使用节点管理器 创建 计算机 配置机器 启动节点管理器 startNodeManager.cmd 验…

百度财报解读:营收持平净利增,“文心一言”站C位

ChatGPT之火,点燃了投资者对AI赛道的热情。 而自百度宣布生成式AI产品“文心一言”(ERNIE Bot)将于3月推出以来,这家公司一直处于市场关注的焦点。 2月22日,百度发布了2022年第四季度及全年财报。财报显示&#xff0c…

力扣79.单词搜索

文章目录力扣79.单词搜索题目描述方法一:回溯深搜力扣79.单词搜索 题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序&#x…

STM32f103 CubeMX封装 led程序

本文代码使用 HAL 库。 文章目录前言一、LED 原理图二、CubeMX创建工程三、LED 相关函数1. 输出电平函数:2. 延时函数:3. 翻转电平函数:四、详细代码实验现象 :总结代码 源码:前言 从这篇文章开始,我们讲解…

6 Namespace,分组和DataID三者之间的关系

命名空间(Namespace) 用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务…

python 利用装饰器实现类似于flask路由

例子1: def f1():print(1111)def f2():print(2222)if __name__ __main__:print(33)打印结果: 33 在例子1中,f1() 与f2() 都没有被调用,只执行了print(33) f1与f2,是没有被调用的,但是如果f1 和 f2 上面…

R统计绘图 | 物种组成堆叠面积图(绝对/相对丰度,ggalluvial)

一、数据准备 数据使用的不同处理土壤样品的微生物组成数据,包含物种丰度,分类单元和样本分组数据。此数据为虚构,可用于练习,请不要作他用。 # 1.1 设置工作路径 #knitr::opts_knit$set(root.dir"D:\\EnvStat\\PCA")…

pyhon笔记——Anaconda安装

一、简介 Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等 Miniconda包括Conda、Python conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之…

教你如何搭建培训机构-学员管理系统,demo可分享

1、简介1.1、案例简介本文将介绍,如何搭建培训机构-学员管理。1.2、应用场景学员信息报表展示所有正式学员信息,可对学员进行分配班级、转课、续课、扩科、退课、阶段测评等操作。2、设置方法2.1、表单搭建1)新建表单【学员】,字段…

扬帆优配|翻倍牛股“高台跳水”,一度跌停,啥情况

2月23日上午,A股商场窄幅震荡,上证指数上午收盘涨0.07%,煤炭、电力设备等板块领涨。 总的来看,A股商场上午整体体现安静,不过仍有个股大幅动摇,比如前期翻倍热门股汉王科技盘中“高台跳水”,一…

mysql间隙锁

首先我们这里有一个表t,其中的数据如下图所示 注意哈 update由于操作的最新的值,所以是当前读! 另外一个事务插入 8的时候发生锁 而我对id为10的数据进行更新,却不会被锁住 分析:在执行当前读时,由于id7不存…

从0开始写Vue项目-Vue实现数据渲染和数据的增删改查

从0开始写Vue项目-环境和项目搭建_慕言要努力的博客-CSDN博客从0开始写Vue项目-Vue2集成Element-ui和后台主体框架搭建_慕言要努力的博客-CSDN博客从0开始写Vue项目-Vue页面主体布局和登录、注册页面_慕言要努力的博客-CSDN博客从0开始写Vue项目-SpringBoot整合Mybatis-plus实现…

element 下拉框支持搜索并输入

前言 下拉框对于开发来说再常见不过了,也是界面设计中的常用组件,在部分使用场景下,我们需要做到下拉框可以选择的同时,支持搜素和输入,以 element 的下拉框组件为例,当我们同时设置属性让其支持搜素和输入…

ssh的使用

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

蓝桥杯:统计子矩阵(十三届省赛C++组)

前言: 这道题目是矩阵类型题目经典题型,解题大体思路是前缀和双指针扫描,在我这篇博客中 第十三届蓝桥杯省赛CB组题解_第十三届蓝桥杯b组c答案_正在黑化的KS的博客-CSDN博客 简单提了一下大致解法,今天刷题时又遇到了一个极其相似…

利用Qgis进行WRF中土地利用数据的替换

一、地形数据来源:MCD12Q1_V006 1.1数据介绍: MODIS三级数据土地覆盖类型产品(Land Cover data)是根据一年的Terra和Aqua观测所得的数据经过处理,描述土地覆盖的类型,分辨率为500m。该土地覆盖数据集中包…