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

leecode 数据库: 602. 好友申请 II :谁有最多的好友

数据导入:

Create table If Not Exists RequestAccepted (requester_id int not null, accepter_id int null, accept_date date null);
Truncate table RequestAccepted;
insert into RequestAccepted (requester_id, accepter_id, accept_date) values ('1', '2', '2016/06/03');
insert into RequestAccepted (requester_id, accepter_id, accept_date) values ('1', '3', '2016/06/08');
insert into RequestAccepted (requester_id, accepter_id, accept_date) values ('2', '3', '2016/06/08');
insert into RequestAccepted (requester_id, accepter_id, accept_date) values ('3', '4', '2016/06/09');

在 Facebook 或者 Twitter 这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请。

RequestAccepted 表:

+----------------+---------+
| Column Name    | Type    |
+----------------+---------+
| requester_id   | int     |
| accepter_id    | int     |
| accept_date    | date    |
+----------------+---------+
(requester_id, accepter_id) 是这张表的主键。
这张表包含发送好友请求的人的 ID ,接收好友请求的人的 ID ,以及好友请求通过的日期。

 

写一个查询语句,找出拥有最多的好友的人和他拥有的好友数目。

生成的测试用例保证拥有最多好友数目的只有 1 个人。

查询结果格式如下例所示。

示例:

输入:
RequestAccepted 表:
+--------------+-------------+-------------+
| requester_id | accepter_id | accept_date |
+--------------+-------------+-------------+
| 1            | 2           | 2016/06/03  |
| 1            | 3           | 2016/06/08  |
| 2            | 3           | 2016/06/08  |
| 3            | 4           | 2016/06/09  |
+--------------+-------------+-------------+
输出:
+----+-----+
| id | num |
+----+-----+
| 3  | 3   |
+----+-----+
解释:
编号为 3 的人是编号为 1 ,2 和 4 的人的好友,所以他总共有 3 个好友,比其他人都多。

解题思路:

本题抓住关键词【最多】可以知道是考察我们排序,可以使用

子查询筛选(group by having count >= all)
order by limit 1
窗口函数
注意:不管是申请还是接受的id,都要考虑,因为他们互为好友,所以可以union all到一起再group by。

with cte as
(selectrequester_id as id
from RequestAccepted 
union all
selectaccepter_id  
from RequestAccepted)# 子查询筛选(group by having count >= all)
select id,count(*) as num
from cte
group by id
having count(*) >= all(select count(*) from cte group by id)# order by limit 1
select id,count(*) as num
from cte
group by id
order by num desc
limit 1# 窗口函数
selectid,num
from
(select id,count(*) as num,dense_rank() over(order by count(*) desc) as rnk
from cte
group by id) t
where rnk=1
;

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/friend-requests-ii-who-has-the-most-friends
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

相关文章:

leecode 数据库: 602. 好友申请 II :谁有最多的好友

数据导入: Create table If Not Exists RequestAccepted (requester_id int not null, accepter_id int null, accept_date date null); Truncate table RequestAccepted; insert into RequestAccepted (requester_id, accepter_id, accept_date) values (1, 2, 20…...

基于 Prometheus 的 SLO告警实战

Prometheus是一个流行的开源监控系统,它可以帮助我们收集、存储和查询应用程序或系统的时间序列数据。在使用Prometheus进行监控时,通常需要根据服务水平指标(Service Level Objectives,简称SLO)来设置告警规则。 SLO…...

调用百度API实现图像风格转换

目录 1、作者介绍2、基本概念2.1 人工智能云服务与百度智能云2.2 图像风格转换 3、调用百度API实现图像风格转换3.1 配置百度智能云平台3.2 环境配置3.3 完整代码实现3.4 效果展示3.5 问题与分析 1、作者介绍 张元帮,男,西安工程大学电子信息学院&#…...

5个最好的WooCommerce商城自动化动作来增加销售量

您是否正在寻找简单智能的方法来自动执行任务并增加 WooCommerce 商店的销售额? 通过在线商店中的自动化任务,您可以在发展业务和增加销售额的同时节省时间和金钱。 在本文中,我们将向您展示如何使用 WooCommerce商城自动化来增加销售额。 …...

打开数据结构大门——实现小小顺序表

文章目录 前言顺序表的概念及分类搭建项目(Seqlist):apple:搭建一个顺序表结构&&定义所需头文件&&函数:banana:初始化:pear:打印:watermelon:数据个数:smile:检查容量:fireworks:判空:tea:在尾部插入数据:tomato:在尾部删除数据:lemon:在…...

一.RxJava

1.RxJava使用场景 RxJava核心思想 Rx思维:响应式编程,从起点到终点,中途不能断掉,并且可以在中途添加拦截. 生活中的例子: 起点(分发事件,我饿了)->下楼->去餐厅->点餐->终点(吃饭,消费事件) 程序中的例子: 起点(分发事件,点击登录)->登录API->请求服务器-…...

如何使用 VSCode 软件运行C代码

VSCode 的下载和扩展的配置可以参考文章:VSCode 的安装与插件配置。 VSCode 是很好用的编辑器,通过给其配置 MinGW-w64 插件就可以在它上面编译运行C代码了。 在没有配置 MinGW-w64 插件时,在 VSCode 中运行下面的代码后打印如下图所示。 这…...

C# 调用Matlab打包的 DLL文件(傻瓜式操作)

1、准备Matlab代码 2. 打包 在matlab命令行窗口输入deploytool,打开MATLAB Complier,选择Library Compiler 在TYPE中选择.NET Assembly;在EXPORTED FUNCTIONS中选择要打包的文件;可以选择为自己打包的文件自定义NameSpace名称,本例中将NameSpace定义为…...

微信小程序学习实录3(环境部署、百度地图微信小程序、单击更换图标、弹窗信息、导航、支持腾讯百度高德地图调起)

百度地图微信小程序 一、环境部署1.need to be declared in the requiredPrivateInfos2.api.map.baidu.com 不在以下 request 合法域名3.width and heigth of marker id 9 are required 二、核心代码(一)逻辑层index.js(二)渲染层…...

【面试题】中高级前端工程师都需要熟悉的技能--前端缓存

前端缓存 一、前言二、web缓存分类1. HTTP缓存:2. 浏览器缓存:3. Service Worker:4. Web Storage缓存:5. 内存缓存: 三、http缓存详解1、http缓存类型a. 基于有效时间的缓存控制:b. 基于资源标识的缓存&…...

小红书数据分析:首播卖6亿,小红书直播开启新纪元!

5月22日,章小蕙在小红书开启了第一场带货直播。继董洁之后,小红书又迎来一位超级带货KOL。 据千瓜数据显示,相关话题#章小蕙小红书直播#上线不到30天,话题浏览量就高达2814.89万,笔记互动量达22.24万。 图 | 千瓜数据…...

Weex中,关于组件的水平排列竖直排列居中对齐居左对齐居右对齐低部对齐顶部对齐布局对齐说明

容器内子组件排列方向 子组件竖直方向排列&#xff08;默认&#xff09; 子组件水平方向排列 <style> .container {flex-direction: row;direction: ltr; } </style>子组件在父组件容器中的对齐方式 我们主要使用两个属性实现子组件在父组件的对齐方式&#xff…...

服务(第二十八篇)rsync

配置rsync源服务器&#xff1a; #建立/etc/rsyncd.conf 配置文件 vim /etc/rsyncd.conf #添加以下配置项 uid root gid root use chroot yes #禁锢在源目录 address 192.168.80.10 …...

Vue 3 第二十五章:插件(Plugins)

文章目录 1. 创建插件2. 使用插件3. 插件选项 Vue 3 的插件系统允许我们扩展 Vue 的功能和行为&#xff0c;并且可以在多个组件之间共享代码和逻辑。插件可以用于添加全局组件、指令、混入、过滤器等&#xff0c;并且可以在应用程序启动时自动安装。 1. 创建插件 创建插件需要…...

Android 系统内的守护进程 - main类服务(3) : installd

声明 只要是操作系统,不用说的就是其中肯定会运行着一些很多守护进程(daemon)来完成很多杂乱的工作。通过系统中的init.rc文件也可以看出来,其中每个service中就包含着系统后台服务进程。而这些服务被分为:core类服务(adbd/servicemanager/healthd/lmkd/logd/vold)和mai…...

华为OD机试真题 Java 实现【对称字符串】【2023Q2 200分】

一、题目描述 对称就是最大的美学&#xff0c;现有一道关于对称字符串的美学。 已知&#xff1a; 第 1 个字符串&#xff1a;R 第 2 个字符串&#xff1a;BR 第 3 个字符串&#xff1a;RBBR 第 4 个字符串&#xff1a;BRRBRBBR 第 5 个字符串&#xff1a;RBBRBRRBBRRBRBBR …...

day18文件上传下载与三层架构思想

servlet文件上传 注意事项:在写了响应后,若后面还需要执行代码,需要添加return; apach的servlet3.0提供了文件上传的功能. **在客户端中的jsp如何上传文件:**使用form标签 使用input标签type的file属性 form表单中的的enctype必须加:使用二进制的方式进行传输,否则不能进行…...

Async/await详解

一、概念与背景 他是在ES8被提出的一种异步方式&#xff0c;它其实是promise的一种语法糖 二、 Async关键字 async 关键字用于快速声明异步函数 &#xff0c;可以用在函数声明、函数表达式、箭头函数和方法上 async function foo() {} let bar async function() {}; let…...

Mysql基础 — DDL、DML、DQL、DCL、函数、约束

文章目录 Mysql基础一、数据模型1.1 关系型数据库与非关系型数据库1.2 Mysql 数据模型 二、SQL2.1 SQL 通用语法2.2 SQL分类2.3 DDL2.3.1 数据库操作2.3.2 表操作 — 创建 & 查询2.3.3 表操作— 修改&删除2.3.4 数据类型2.3.4.1 数值类型2.3.4.2 字符串类型2.3.4.3 日期…...

中国移动董宁:深耕区块链的第八年,我仍期待挑战丨对话MVP

区块链技术对于多数人来说还是“新鲜”的代名词时&#xff0c;董宁已经成为这项技术的老朋友。 董宁2015年进入区块链领域&#xff0c;现任中国移动研究院技术总监、区块链首席专家。作为“老友”&#xff0c;董宁见证了区块链技术多个爆发式增长和平稳发展的阶段&#xff0c;…...

告别PWM!用STM32串口轻松驱动幻尔16路舵机控制板(附完整代码)

STM32串口驱动幻尔16路舵机控制板的实战指南 从PWM到串口&#xff1a;舵机控制的技术演进 记得我第一次尝试用STM32控制机械臂时&#xff0c;光是配置PWM定时器就花了两天时间。每个舵机需要独立的PWM通道&#xff0c;复杂的定时器分频计算&#xff0c;还有那令人头疼的占空比换…...

2025.07.15【甲基化】methylKit实战指南:从Bioconductor安装到差异甲基化区域精准注释

1. methylKit&#xff1a;甲基化数据分析的瑞士军刀 第一次接触甲基化数据分析时&#xff0c;我被各种专业术语和复杂流程搞得晕头转向。直到发现了methylKit这个神器&#xff0c;才真正体会到什么叫"一站式解决方案"。作为R语言环境下最成熟的甲基化分析工具之一&a…...

避坑指南:Ubuntu 18.04下编译Android 15源码的常见错误及解决方案

Ubuntu 18.04下编译Android 15源码的避坑实战手册 作为一名长期深耕Android系统开发的工程师&#xff0c;我深知在Ubuntu环境下编译AOSP源码的痛点和挑战。特别是当Android版本更新到15.0时&#xff0c;编译环境的兼容性问题、驱动文件的获取方式、以及各种隐藏的配置陷阱&…...

深入TC3xx安全机制:从WDT密码访问到Endinit保护,如何构建防误写屏障?

TC3xx芯片安全架构深度解析&#xff1a;Endinit机制与汽车电子功能安全实践 在汽车电子系统设计中&#xff0c;功能安全从来不是可选项而是必选项。随着ADAS和自动驾驶技术的快速发展&#xff0c;ECU的复杂性和安全性要求呈指数级增长。TC3xx系列芯片作为汽车电子领域的核心处…...

网站优化对企业营销有什么作用_SEO优化能带来哪些好处

网站优化对企业营销有什么作用_SEO优化能带来哪些好处 在当前数字化时代&#xff0c;企业的在线存在感已经成为衡量其市场竞争力的重要指标。在这种背景下&#xff0c;网站优化&#xff08;特别是搜索引擎优化&#xff0c;SEO&#xff09;不仅仅是一个技术细节&#xff0c;而是…...

如何用GetQzonehistory高效备份QQ空间历史说说实现青春记忆永久保存

如何用GetQzonehistory高效备份QQ空间历史说说实现青春记忆永久保存 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 解决数字记忆流失的痛点方案 在这个信息快速迭代的时代&#xff0c…...

手把手教你用华为昇腾A2-910b显卡,一键部署中文Embedding和Rerank模型

华为昇腾A2-910b实战&#xff1a;中文Embedding与Rerank模型高效部署指南 当你在深夜的办公室里盯着昇腾显卡的报错日志时&#xff0c;可能正经历着每个AI工程师都熟悉的"部署地狱"。别担心&#xff0c;这份指南将带你绕过所有坑点&#xff0c;用最直接的方式在华为A…...

移动设备上实现实时人物移除的终极优化指南

移动设备上实现实时人物移除的终极优化指南 【免费下载链接】Real-Time-Person-Removal Removing people from complex backgrounds in real time using TensorFlow.js in the web browser 项目地址: https://gitcode.com/gh_mirrors/re/Real-Time-Person-Removal Real-…...

智能监控新选择:基于实时口罩检测-通用模型的自动告警系统搭建

智能监控新选择&#xff1a;基于实时口罩检测-通用模型的自动告警系统搭建 1. 引言&#xff1a;智能防疫监控的迫切需求 在公共场所管理中&#xff0c;确保人员佩戴口罩是防疫工作的重要环节。传统的人工检查方式存在效率低、成本高、易遗漏等问题。基于计算机视觉的智能监控…...

OFDM802.11a的FPGA实现(八)二级交织:子载波交织优化策略(附Verilog与Matlab对比)

1. 二级交织在802.11a中的核心作用 在无线通信系统中&#xff0c;突发错误是导致数据传输失败的主要原因之一。802.11a标准采用二级交织技术来解决这个问题&#xff0c;它通过重新排列数据比特的顺序&#xff0c;使得原本连续的突发错误在接收端被分散开来。这种技术就像是洗牌…...