gpt4 book ai didi

sql - 选择计数 = 1 的位置

转载 作者:行者123 更新时间:2023-12-02 05:37:08 24 4
gpt4 key购买 nike

LESSON具有字段LessonDate、MemberId(除其他字段外,但只有这两个相关)

英语:给我一份只上过一门课的学生上这门课的日期列表。

我尝试过很多事情。这是我的最新尝试:

SELECT LessonDate 
FROM LESSON
WHERE (SELECT COUNT(MemberId) GROUP BY (MemberId)) = 1

只是不断返回 SQL 错误。显然,语法和逻辑都是错误的。

最佳答案

这个查询乍一看可能有点违反直觉。您需要按 MemberId 分组以获取只参加一门课的学生:

select max(l.LessonDate) as LessonDate
from Lesson l
group by l.MemberId
having count(*) = 1;

因为学生只有一个类,所以 max(l.LessonDate) 就是该日期。因此,这满足了您的要求:它获取只参加了一个类的成员(member)的所有日期。

你们的思路也很接近。这是我认为您正在寻找的查询:

SELECT LessonDate 
FROM LESSON
WHERE MemberId in (SELECT l2.MemberId
FROM Lesson l2
GROUP BY l2.MemberId
HAVING COUNT(*) = 1
);

如果您想要获取具有 2 或 3 行的成员的日期,则此方法更具通用性。

关于sql - 选择计数 = 1 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com