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;
相关推荐
挖掘狂人19 分钟前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救
后端·sql·mysql
codigger21 分钟前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救
数据库·sql·mysql·程序员
Francek Chen26 分钟前
【大数据处理与分析】数据仓库Hive:09 Hive 编程实践
大数据·数据仓库·hive·hadoop·sql
麦壳饼33 分钟前
SonnetDB 5.0 正式发布:增强 SQL 与事务,开放九模型 MCP 读写
数据库·人工智能·sql·sonnetdb
Decay__10 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
java_logo10 小时前
Docker 部署 Liquibase:轻松搭建数据库变更管理
数据库·docker·容器·数据库管理·liquibase·轩辕镜像·数据库变更
凤凰院凶涛QAQ11 小时前
《MySQL内核拆解:从SQL到InnoDB》(四) : 联合查询 & 视图
数据库·sql·mysql
码农小河6611 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
张小姐的猫11 小时前
【MySQL】访问 & 数据流动原理
android·数据库·mysql·adb·1024程序员节