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;
相关推荐
Tansmjs2 分钟前
使用Python自动收发邮件
jvm·数据库·python
m0_561359675 分钟前
用Python监控系统日志并发送警报
jvm·数据库·python
Christo39 分钟前
TFS-2026《Fuzzy Multi-Subspace Clustering 》
人工智能·算法·机器学习·数据挖掘
Dxy123931021616 分钟前
MySQL INSERT ... ON DUPLICATE KEY UPDATE 与非主键唯一字段
数据库·mysql
2401_8576835421 分钟前
C++中的原型模式
开发语言·c++·算法
s1hiyu31 分钟前
C++动态链接库开发
开发语言·c++·算法
(❁´◡`❁)Jimmy(❁´◡`❁)32 分钟前
CF2188 C. Restricted Sorting
c语言·开发语言·算法
We་ct32 分钟前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript
星火开发设计36 分钟前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识
zhousenshan38 分钟前
springboot事务管理几种方式
数据库