mysql - 使用 SQL COUNT(*) 并仅返回具有有效计数的结果
问题描述
我有一个包含列的学生表:
学生姓名 | 电子邮件 | 教师编号 | 老师的名字
目标是计算每位教师拥有的学生人数。
SELECT teacher_id, COUNT(*) AS active_students
FROM students
GROUP BY teacher_id;
使用上面的 SQL,我可以获得每个教师 ID 的计数。但是,当我包含teacher_name 时,我会收到错误消息。如果每个学生共享相同的老师,则每个学生可能具有相同的teacher_id,如果他们没有注册课程,则某些学生的teacher_id 为NULL。
如何更改我的查询,以便我可以计算每个teacher_id 拥有的学生人数,并在同一张表中包含其他列?
解决方案
只需将教师姓名添加到SELECT
和GROUP BY
子句中:
SELECT teacher_id, teacher_name, COUNT(*) AS active_students
FROM students
GROUP BY teacher_id, teacher_name;
推荐阅读
- r - glmmPQL (MASS) 摘要输出中的 AIC NA 意味着什么?
- python - 解压由 pool map 创建的列表
- html - 通过 AJAX 将正确的值发送到电子邮件
- javascript - 在异步 Jest 测试中是否需要完成?
- java - PMD eclipse 插件中的误报
- r - 从R中的文本字符串中提取N个匹配项?
- c++ - 为什么 CMake 在 Ubuntu 18.04 上找不到我的 Boost 库?
- reactjs - 获取 https://myurl.com/static/js/main.c6e1854c.chunk.js net::ERR_ABORTED 404(未找到)
- charts - 如何使用 Chart.js 绘制混合财务/烛台和条形图?
- c# - 无法使用 Graph 创建草稿,但直接发送邮件可以正常工作