首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在复杂条件下从表中选择值?

如何在复杂条件下从表中选择值?
EN

Stack Overflow用户
提问于 2019-04-18 05:40:06
回答 2查看 83关注 0票数 1

我有一个3列的表:course_name, year, semester

现在我想找出在每学期(2001年和2002年)有课程的科目(S1和S2)。

我试着写了一个小时的CASE WHENGROUP BY HAVING,但是没有得到正确的结果。

table_subjects

代码语言:javascript
复制
course_name| year| semester
Programming   2001   S1
Programming   2001   S2
Programming   2002   S1
Programming   2002   S2
Law           2001   S1
Law           2001   S2
Law           2002   S2
Science       2001   S1
Science       2001   S2
Management    2002   S2
AI            2001   S1
Database      2001   S1
Database      2001   S2
Database      2002   S1
Database      2002   S2

预期结果:

代码语言:javascript
复制
|course_name|
 Programming
 Database
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-18 05:42:42

你可以在下面试试-

演示

代码语言:javascript
复制
select course_name
from t1 a
where year in (2001,2002) and exists (select 1 from t1 b where a.course_name=b.course_name
and a.year=b.year and semester in ('S1','S2') having count(distinct semester)=2)
group by course_name
having count(distinct year)=2 

产出:

代码语言:javascript
复制
course_name
Database
Programming
票数 3
EN

Stack Overflow用户

发布于 2019-04-18 12:07:21

代码语言:javascript
复制
SELECT T.course_name
FROM
(
    SELECT course_name
    FROM table_subjects
    GROUP BY course_name,
             year
    HAVING COUNT(1) = 2
) T
GROUP BY T.course_name
HAVING COUNT(1) = 2;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55739732

复制
相关文章

相似问题

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