Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:最大计数和列名_Mysql - Fatal编程技术网

MySQL:最大计数和列名

MySQL:最大计数和列名,mysql,Mysql,我有学生,课程和学生有课程表格 学生(id,name…) 课程中(id,name…) 学生拥有课程(学生id,课程id) 我想知道“人口最多的课程”的数量和名称 有了这个,我可以得到最大填充课程数,但我不知道如何才能得到课程名称 SELECT MAX(counted) FROM ( SELECT COUNT(*) AS counted FROM student_has_course GROUP BY course_ID ) AS counts; 请尝试此查询 SELEC

我有
学生
课程
学生有课程
表格

学生(
id
name
…)
课程中(
id
name
…)
学生拥有课程(
学生id
课程id

我想知道“人口最多的课程”的数量和名称

有了这个,我可以得到最大填充课程数,但我不知道如何才能得到课程名称

SELECT MAX(counted)
FROM
(
    SELECT COUNT(*) AS counted
    FROM student_has_course
    GROUP BY course_ID
) AS counts;
请尝试此查询

SELECT COUNT(shc.course_id) as cnt, c.name
FROM student_has_course shc 
JOIN course c ON (c.course_id = shc.course_id)
GROUP BY shc.course_id
ORDER BY cnt DESC
LIMIT 1

尝试内部连接以获得result@RohitKumar你能给我正确的语法吗?为了确保正确的顺序,我会添加另一个订单。很可能不会使用它,但它是为了确保输出的正确排序,因为优化器最后是如何进行连接的还不是100%清楚。@frlan,因为子查询只返回一行,我想这不会是一个问题
SELECT c.name, sc.cnt
FROM
    course c
    INNER JOIN (SELECT course_id, COUNT(*) as cnt FROM student_has_course GROUP BY 1 ORDER BY 2 DESC LIMIT 1) cs ON c.id=cs.course_id