当前位置: 首页 > news >正文

力扣-求关注者的数量

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。

文章目录

  • 前言
  • 一、题目:1729. 求关注者的数量
  • 二、解题
    • 1.正确示范①
      • 提交SQL
      • 运行结果
    • 2.正确示范②
      • 提交SQL
      • 运行结果
    • 3.正确示范③
      • 提交SQL
      • 运行结果
    • 4.正确示范④
      • 提交SQL
      • 运行结果
    • 5.正确示范⑤
      • 提交SQL
      • 运行结果
  • 总结


前言


一、题目:1729. 求关注者的数量

表: Followers

+-------------+------+
| Column Name | Type |
+-------------+------+
| user_id     | int  |
| follower_id | int  |
+-------------+------+

(user_id, follower_id) 是这个表的主键。
该表包含一个关注关系中关注者和用户的编号,其中关注者关注用户。
写出 SQL 语句,对于每一个用户,返回该用户的关注者数量。
按 user_id 的顺序返回结果表。
查询结果的格式如下示例所示。

输入:
Followers 表:
+---------+-------------+
| user_id | follower_id |
+---------+-------------+
| 0       | 1           |
| 1       | 0           |
| 2       | 0           |
| 2       | 1           |
+---------+-------------+
输出:
+---------+----------------+
| user_id | followers_count|
+---------+----------------+
| 0       | 1              |
| 1       | 1              |
| 2       | 2              |
+---------+----------------+

解释:
0 的关注者有 {1}
1 的关注者有 {0}
2 的关注者有 {0,1}

二、解题

1.正确示范①

提交SQL

select user_id,count(1) followers_count
from Followers
group by user_id
order by user_id;

运行结果

2.正确示范②

提交SQL

select user_id,count(*) followers_count
from Followers
group by user_id
order by user_id;

运行结果

3.正确示范③

提交SQL

select user_id,count(follower_id) followers_count
from Followers
group by user_id
order by user_id;

运行结果

4.正确示范④

提交SQL

select user_id,sum(1) followers_count
from Followers
group by user_id
order by user_id;

运行结果

5.正确示范⑤

提交SQL

select distinct user_id,
sum(1) over(partition by user_id) followers_count
from Followers
order by user_id;

运行结果


总结

正确示范①思路:
采用count(1)
先按用户id分组,再用count(1)统计出关注者的数量,再按用户id顺序;
正确示范②思路:
采用count(*)
先按用户id分组,再用count(*)统计出关注者的数量,再按用户id顺序;
正确示范③思路:
采用count(follower_id)
先按用户id分组,再用count(follower_id)统计出关注者的数量,再按用户id顺序;
正确示范④思路:
采用sum(1)
先按用户id分组,再用sum(1)统计出关注者的数量,再按用户id顺序;
正确示范⑤思路:
采用sum(1) over(partition by user_id)
通过partition by分组,用sum(1)统计出关注者的数量,用distinct去重后,再按用户id顺序。

http://www.lryc.cn/news/37182.html

相关文章:

  • 近红外荧光染料修饰氨基IR 825 NH2,IR 825-Amine,IR-825 NH2
  • Android Crash和ANR监控
  • 【02 赖世雄英语语法:复句的语法】
  • 北斗导航 | 多参考一致性监测算法(MRCC)(附伪码)—— B值计算
  • 数字孪生与 UWB 人员定位:双剑合璧的智能物联新时代
  • 奇点云DataSimba发版全解析:“企业级”版本升级,提供最佳组合
  • 2-7 SpringCloud快速开发入门: Eureka 注册中心高可用集群搭建
  • STL中的函数对象
  • linux下libevent的编译安装
  • 深度学习部署笔记(十): CUDA RunTime API-2.2流的学习
  • [ROC-RK3568-PC] [Firefly-Android] 10min带你了解I2C的使用
  • 工作记录:举步维艰的在线 word 之旅 - tinymce
  • 动态规划编译距离
  • Netty 教程 – 解码器详解
  • Allegro如何自动添加测试点操作指导
  • 【CSS】CSS 背景设置 ③ ( 背景位置-长度值设置 | 背景位置-长度值方位值同时设置 )
  • AbTest —— 不同场景下的应用模式
  • fast-api 一款快速将spring的bean发布成接口并生产对应swagger文档调试的轻量级工具
  • 以公益之名 让人类发现数学之美
  • JUC并发编程之HashMap(jdk1.7版本)-底层源码探究
  • QT Q_OBJECT 和 signals/slots
  • APM新添加UAVCAN设备
  • 【C++】string类基本用法
  • KDZD耐电压高压击穿强度测试仪
  • 数组和指针面试题的补充(细的抠jio)
  • Java多线程基础
  • 爆品分析第5期 | 一条视频带货3700+,这款斋月不锈钢厨具套装火了!
  • 团队管理的七个要点
  • Go语言容器之map、list和nil
  • 软件测试的案例分析 - 闰年1