leetcode 1355 活动参与者(postgresql)

需求

表: Friends

±--------------±--------+

| Column Name | Type |

±--------------±--------+

| id | int |

| name | varchar |

| activity | varchar |

±--------------±--------+

id 是朋友的 id 和该表的主键

name 是朋友的名字

activity 是朋友参加的活动的名字

表: Activities

±--------------±--------+

| Column Name | Type |

±--------------±--------+

| id | int |

| name | varchar |

±--------------±--------+

id 是该表的主键

name 是活动的名字

写一条 SQL 查询那些既没有最多,也没有最少参与者的活动的名字

Activities 表中的任意活动都有在 Friends 中参与过

可以以 任何顺序 返回结果。

下面是查询结果格式的例子。

示例 1:

输入:

Friends 表:

±-----±-------------±--------------+

| id | name | activity |

±-----±-------------±--------------+

| 1 | Jonathan D. | Eating |

| 2 | Jade W. | Singing |

| 3 | Victor J. | Singing |

| 4 | Elvis Q. | Eating |

| 5 | Daniel A. | Eating |

| 6 | Bob B. | Horse Riding |

±-----±-------------±--------------+

Activities 表:

±-----±-------------+

| id | name |

±-----±-------------+

| 1 | Eating |

| 2 | Singing |

| 3 | Horse Riding |

±-----±-------------+

输出:

±-------------+

| activity |

±-------------+

| Singing |

±-------------+

解释:

Eating 活动有三个人参加, 是最多人参加的活动 (Jonathan D. , Elvis Q. and Daniel A.)

Horse Riding 活动有一个人参加, 是最少人参加的活动 (Bob B.)

Singing 活动有两个人参加 (Victor J. and Jade W.)

输入

输出

sql 复制代码
with t1 as (select f.activity, count(1) as cnt
            from Friends f
                     left join activities a on f.activity = a.name
            group by f.activity),
     t2 as (select *,
                   row_number() over (order by cnt)      as rn1,
                   row_number() over (order by cnt desc) as rn2
            from t1)
select activity
from t2
where rn1!=1 and rn2!=1;
相关推荐
ytttr8734 小时前
隐马尔可夫模型(HMM)MATLAB实现范例
开发语言·算法·matlab
@淡 定4 小时前
Redis热点Key独立集群实现方案
数据库·redis·缓存
laocooon5238578864 小时前
mysql,100个题目。
数据库·sql·mysql
Web极客码4 小时前
如何在Ubuntu服务器上安装和配置BIND9
服务器·数据库·ubuntu
AlenTech4 小时前
160. 相交链表 - 力扣(LeetCode)
数据结构·leetcode·链表
W001hhh4 小时前
数据库实训Day004上午
数据库
点云SLAM5 小时前
凸优化(Convex Optimization)理论(1)
人工智能·算法·slam·数学原理·凸优化·数值优化理论·机器人应用
jz_ddk5 小时前
[学习] 卫星导航的码相位与载波相位计算
学习·算法·gps·gnss·北斗
funfan05175 小时前
【运维】MySQL数据库全量备份与恢复实战指南:从入门到精通
运维·数据库·mysql
放荡不羁的野指针5 小时前
leetcode150题-动态规划
算法·动态规划