SQL选择并显示至少包含一个值的组中的所有值
也许有人已经回答了这个问题,但我会在这里尝试。 假设我有三个专栏:SQL选择并显示至少包含一个值的组中的所有值,sql,Sql,也许有人已经回答了这个问题,但我会在这里尝试。 假设我有三个专栏: **NAME** **TEST SCORE** **DATE** Chloé 67 Jan 8th Dennis 98 Jan 8th Zakary 45 Jan 8th Chloé 75 July 1st Dennis
**NAME** **TEST SCORE** **DATE**
Chloé 67 Jan 8th
Dennis 98 Jan 8th
Zakary 45 Jan 8th
Chloé 75 July 1st
Dennis 91 July 1st
Zakary 76 July 1st
我不仅想知道学生的名字,还想知道至少有一个成绩低于50%的学生的所有考试结果和日期,以便得到如下信息:
Zakary 45 Jan8th
Zakary 76 July1st
我可以点什么菜?我已经试过了,但它似乎不适用于存在:
select t.* from tablename t
where exists (
select 1 from tablename
where name = t.name and score < 50
)
或:
我不知道您正在使用哪个数据库,但您应该尝试以下语句:
SELECT NAME, TEST_SCORE, DATE
FROM STUDENTS
WHERE NAME IN
(SELECT DISTINCT NAME FROM STUDENTS WHERE TEST_SCORE < 50)
希望能有帮助。
享受吧 使用join
真的是76分吗?另外,切换到正确的日期数据类型。
SELECT NAME, TEST_SCORE, DATE
FROM STUDENTS
WHERE NAME IN
(SELECT DISTINCT NAME FROM STUDENTS WHERE TEST_SCORE < 50)
select a.*
from tablename a
join (select distinct name from tablename where score<50) b on a.name=b.name