首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于获取不是最大值或最小值的记录的SQL查询

用于获取不是最大值或最小值的记录的SQL查询
EN

Stack Overflow用户
提问于 2019-09-13 04:33:11
回答 2查看 1.7K关注 0票数 2

我有以下两个表:STUDENTS, SUBJECTS

代码语言:javascript
复制
**STUDENTS**

ID NAME SUBJECT
1  JOHN  A
2  JANE  A
3  TOM  B
4  TIM  C
5  CHRI  C
6  APE  C

**SUBJECTS**

ID NAME
1  A
2  B
3  C

在上面的学生表中,我有A repeated 2 times, B once (this is minimum) and C - 3 times(This is maximum)

如何编写只获取不是最大值也不是最小值的主题名称的查询。

在上面的示例数据中,我的输出应该是A

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-13 04:36:33

您可以使用窗口函数:

代码语言:javascript
复制
select subject
from (select subject, count(*) as cnt,
             max(count(*)) over () as max_cnt,
             min(count(*)) over () as min_cnt
      from t
      group by subject
     ) s
where cnt not in (max_cnt, min_cnt);
票数 3
EN

Stack Overflow用户

发布于 2019-09-13 04:48:55

另一种方法:

代码语言:javascript
复制
SELECT SUBJECT
FROM STUDENTS
GROUP BY SUBJECT
HAVING COUNT(*) > 1 AND COUNT(*) < 3
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57914129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档