美文网首页
Leetcode1355. 活动参与者(中等)

Leetcode1355. 活动参与者(中等)

作者: kaka22 | 来源:发表于2020-07-22 15:35 被阅读0次

题目
表: 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 表

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

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 |
+------+--------------+

Result 表:

+--------------+
| results      |
+--------------+
| Singing      |
+--------------+

Eating 活动有三个人参加, 是最多人参加的活动 (Jonathan D. , Elvis Q. and Daniel A.)
Horse Riding 活动有一个人参加, 是最少人参加的活动 (Bob B.)
Singing 活动有两个人参加 (Victor J. and Jade W.)

解答
其实就是掐头去尾
先把最多的和最少的活动选出来

-- 最多的
select F.activity
from Friends as F
group by F.activity
order by count(F.id) desc
limit 0,1;

-- 最少的
select F.activity
from Friends as F
group by F.activity
order by count(F.id) asc
limit 0,1;

排除这两个即可

select FF.activity
from Friends as FF
where FF.activity <>(select F.activity
from Friends as F
group by F.activity
order by count(F.id) desc
limit 0,1) 
and  FF.activity <>(select F.activity
from Friends as F
group by F.activity
order by count(F.id) asc
limit 0,1) 

别的方法

select activity 
from friends 
group by activity 
having count(*) between 
(select count(*)+1 a from friends group by activity order by a asc limit 1)  
and 
(select count(*)-1 a from friends group by activity order by a desc limit 1);

相关文章

  • Leetcode1355. 活动参与者(中等)

    题目表: Friends id 是朋友的 id 和该表的主键name 是朋友的名字activity 是朋友参加的活...

  • 活动参与者

    本周有一种又回到了学生时代学生会工作的感觉,只是现在时间比较有弹性。我们职场团队的日常经营管理工作主要由教...

  • 文学创作Summer club♥

    现有参与者:2人。 活动时间:2014.7.1——2014.8.29 第一天,一位参与者出题,当晚所有参与者在同一...

  • 做生活动参与者

    以前对于自己不主刀的事情总是不会有太关注,参与时总是想,反正也不会有别人关注。随着思想的成熟,逐渐发现领悟到一句话...

  • 价值观拍卖活动——你要的是什么?

    价值观拍卖活动,我在过去参与过6次,其中2次作为参与者,4 次作为主持者去主持这场活动,无论是作为参与者,还是作为...

  • 大脑如何学习-信息加工模型(38)

    实践角 活动指导:在这个活动中,学生或参与者扮演信息加工模型中不同部分的角色。 1.每个参与者获得以下任务中的一个...

  • 南宁洋葱读书会11.24

    活动主题:习惯养成 组织者:小袁 活动参与者:甜喵 瓶子 燕子 韦琳 伯乐 活动流程: 自我介绍 讲解...

  • TF活动设计 - 如何在活动中创造巅峰体验?

    如何创造巅峰体验? 在设计活动时,为了让参与者乐于参与,印象深刻,可以有意的设计巅峰体验环节,从而可以放大参与者的...

  • 如何组织好一场活动有感(18/365)

    1、首先要明确活动的主题 2、要确定活动的参与者 3、要有自己组织者的团队 4、要明确分工:活动前,活动中,活动后...

  • 香蕉船第38场个人财富战略活动复盘

    【活动主题】个人财富战略 【活动时间】2019年1月12日 【活动地址】北京加减法空间 【组织者】苏睿 【参与者】...

网友评论

      本文标题:Leetcode1355. 活动参与者(中等)

      本文链接:https://www.haomeiwen.com/subject/xvftlktx.html