首先请参阅http://sqlfiddle.com/#!9/7b458/了解我创建的数据库。 (MYSQL) 现在我有一个问题是找出最多的学生已经入学的课程。 这就是我的进展方式
select course_name from `course-taken`
natural join course;
select course_name,count(course_name) from `course-taken`
natural join course
group by course_name;
请参阅http://sqlfiddle.com/#!9/7b458/6
现在问题是如何从计数中找到最大值(course_name) 我尝试过Max(count(course_name)[http://sqlfiddle.com/#!9/7b458/7] 但那表明
X无效使用群组功能
所以请任何人帮我正确查询。
提前谢谢。
答案 0 :(得分:0)
如果您希望课程具有最大数量,并且首先没有任何关系,或者您可以容忍返回单个记录,那么您可以在此使用LIMIT
:
SELECT course_name, COUNT(course_name) AS cnt
FROM course-taken
NATURAL JOIN course
GROUP BY course_name
ORDER BY COUNT(course_name) DESC
LIMIT 1;
答案 1 :(得分:0)
只需在HAVING
子句后添加GROUP BY
子句即可获取最大的course_name记录
HAVING count(course_name) = (
SELECT max(maxc) FROM
(
SELECT course_name, count(course_name) maxc
FROM `course-taken`
NATURAL JOIN course
GROUP BY course_name)cnt
)