• 1355. 活动参与者


    SQL架构

    表: 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.)
    1. # Write your MySQL query statement below
    2. with t as (select # 创建一个 虚拟表 便于 后面 查询使用 减少 重复代码
    3. activity,count(name) c
    4. from
    5. Friends
    6. group by
    7. activity
    8. )
    9. select
    10. activity
    11. from
    12. t
    13. where c not in # 不是 最多 和最少 就是 题中 需要的
    14. (
    15. select # 选出参与者 最多的 个数
    16. max(c)
    17. from t
    18. union all
    19. select #选出 参与者 最少的 个数
    20. min(c)
    21. from t
    22. )

  • 相关阅读:
    滑动窗口滤波
    芯片IO口不加电阻会怎样?
    01. Python基础环境搭建
    E. Block Sequence Codeforces Round 903 (Div. 3)
    AI 助力双碳目标:让每一度电都是我们优化的
    【Rust 日报】2022-09-04 Rust基金会招募
    A-Level化学例题解析及练习Co-ordinate bond
    Python的高级用法:命名元组
    Javascript——处理字符串单引号
    Arduino IDE + Esp32 Cam + 实现视频流 + 开发环境部署
  • 原文地址:https://blog.csdn.net/m0_69157845/article/details/125464519