SQL 计算某个值的出现次数

标签 sql mysql

我正在开发一个类(class)创建应用程序,用户需要在其中显示 X 门类(class)中的所有学生。例如,如果选择了生物类(class),用户应该能够根据用户已经参加的其他类(class)数量来过滤用户。我的表具有以下字段:id、uid、courseid。我想做类似的事情,但不知道语法应该是什么:

SELECT * FROM course_list WHERE count(uid) > X AND courseid=Z

其中 X 是用户已过滤到的类(class)数量(值 0-3),Z 只是用户当前正在查看的类(class)的 ID。

最佳答案

您不能在查询的 where 子句中使用聚合函数。相反,它们属于查询的 having 部分,因此您需要类似以下内容:

select StudentId
from course_list
where CourseId = @CourseId
group by StudentId
having count(uid) > @MaxCount

...或类似的东西。

关于SQL 计算某个值的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4864655/

相关文章:

mysql - EHost 'ip' 不允许连接到这个 MySQL serverConnection

mysql - 如何通过NodeJS插入MySQL中的Orders表和Order Items表

php - 读取 Soap Response XML 并插入到 mysql 中

mysql - 当前版本的核心(Drupal)存储在Drupal的哪个表中?

mysql 每年同一天

MySQL:案例查询中的案例查询?

sql - Oracle SQL : Select at least the first n rows, 继续直到列值与上一个不同

php - AJAX sendlike.php 喜欢和不喜欢 PHP 和 mysql

sql - 如何在 SQL Server 中检查 IMPLICIT_TRANSACTION 的值

Postgres 的 SQL 查询