gpt4 book ai didi

sql - 使用来自 COUNT 的结果来过滤这些结果

转载 作者:行者123 更新时间:2023-12-02 08:46:33 31 4
gpt4 key购买 nike

我想做如下的事情:

    SELECT studentName, COUNT(lessonCode) 
FROM Lessons
WHERE
COUNT(lessonCode) = 10

目前,我正在获取类(class)表中的所有学生,以及他们的类(class)数量,并将信息保存在名为 studentInfo 的表变量中。

    DECLARE @studentInfo TABLE 
(
studentName varchar,
numLessons int
)
INSERT INTO @studentInfo (studentName, numLessons)
SELECT studentName, COUNT(lessonCode)
FROM Lessons

然后我在另一个选择语句中使用它:

    select studentName 
FROM @studentInfo
WHERE
numLessons = 10

这工作正常,但唯一的问题是我的数据库中有大约 30,000 名学生,所以我获取学生列表和他们类的数量的查询需要很长时间,而且通常不会在我取消执行查询之前完成,通常在 30 分钟左右。有没有其他方法可以更有效地做到这一点,并实现我在这篇文章顶部寻找的目标?

谢谢。

最佳答案

使用 HAVING子句:

SELECT studentName, COUNT(lessonCode) 
FROM Lessons
GROUP BY studentName
HAVING COUNT(lessonCode) = 10

此外,考虑在 Lessons(studentName, lessonCode) 上创建一个索引,这将加快您的查询速度,因为您只能通过访问索引。

关于sql - 使用来自 COUNT 的结果来过滤这些结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072118/

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