返回介绍

solution / 1300-1399 / 1355.Activity Participants / README

发布于 2024-06-17 01:03:20 字数 2249 浏览 0 评论 0 收藏 0

1355. 活动参与者

English Version

题目描述

表: Friends

+---------------+---------+
| Column Name   | Type  |
+---------------+---------+
| id      | int   |
| name      | varchar |
| activity    | varchar |
+---------------+---------+
id 是朋友的 id,并且在 SQL 中,是该表的主键
name 是朋友的名字
activity 是朋友参加的活动的名字

 

表: Activities

+---------------+---------+
| Column Name   | Type  |
+---------------+---------+
| id      | int   |
| name      | varchar |
+---------------+---------+
在 SQL 中,id 是该表的主键
name 是活动的名字

 

找出那些既没有最多,也没有最少参与者的活动的名字。

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.)

解法

方法一

# Write your MySQL query statement below
WITH
  t AS (
    SELECT activity, COUNT(1) AS cnt
    FROM Friends
    GROUP BY activity
  )
SELECT activity
FROM t
WHERE cnt > (SELECT MIN(cnt) FROM t) AND cnt < (SELECT MAX(cnt) FROM t);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文