You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何从子查询中选取列?MariaDB统计最高选课人数写法是否正确

问题解答

你的代码核心逻辑是正确的,仅存在一个MariaDB语法层面的小疏漏,修正后即可得到预期的3的结果:

  • 第一步统计每门课程选课人数的语句完全正确
    你编写的SELECT COURSE_ID,COUNT(COURSE_ID) AS C FROM STUDENT GROUP BY COURSE_ID语句可以正常执行,按课程ID分组后统计每个课程对应的选课人数,别名C就是每门课的选课人数统计值。
  • 第二步取最高选课人数的语句缺少子查询别名
    MariaDB强制要求FROM子句后的子查询必须指定别名,你原写法没有给子查询加别名,运行时会抛出语法错误。只需要给子查询随便指定一个别名即可,修正后的语句如下:
    SELECT MAX(C) FROM (
      SELECT COURSE_ID,COUNT(COURSE_ID) AS C FROM STUDENT GROUP BY COURSE_ID
    ) AS course_count;
    
  • 可选简化写法
    你也可以不用嵌套子查询,直接分组后降序排序取第一条即可得到最高选课人数,写法更简洁:
    SELECT COUNT(COURSE_ID) AS max_c FROM STUDENT GROUP BY COURSE_ID ORDER BY max_c DESC LIMIT 1;
    

内容的提问来源于stack exchange,提问作者enthusiasticcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 02:24:01