我有一个数据库结构,看起来像这样:

我要创建的查询是一个选择最受欢迎的活动类的查询。Active的定义是在未来有一个结束日期(仍然是active),而最流行的定义是拥有最多的类成员。
到目前为止,我有这个查询:
CREATE VIEW popularclasses AS
SELECT COUNT(studentid) AS amount
FROM classes
JOIN classmembers ON classes.classid = classmembers.classid
WHERE ends > NOW();我尝试创建一个视图,在该视图中,我计算所有的学生id并连接另一个表,然后尝试创建where子句,以仅标记活动的学生id。
我的问题是,我想要得到每个班级的学生数量,然后做一些类似这样的事情
... sort desc LIMIT 10;发布于 2020-02-26 04:22:07
这里您需要的是一个group by运算符。
当学生在同一个班级时,您希望对他们进行重新分组,然后计算每个班级的学生人数。
CREATE VIEW popularclasses AS
SELECT
classes.classid,
COUNT(*) AS amount
FROM
classes
JOIN classmembers ON classes.classid = classmembers.classid
GROUP BY
classes.classid
ORDER BY amount DESC LIMIT 10;(我还没有尝试过这个代码)
https://stackoverflow.com/questions/60402407
复制相似问题