sql - 如何使用 count(*) 从另一个具有条件和分组依据的表中进行选择?
问题描述
我正在处理两张名为Students
anddepartments
学生
StudentId | Name | Address | DepartmentId
1 | Simons | Los Angeles| 001
2 | Mark | Texas | 001
3 | Kelly | Florida | 002
4 | Philip | New York | 002
部门
DepartmentId | Name | Date_Creation
001 | Maths | 01/09/2021
002 | Physics | 01/08/2021
我真正需要的是从部门表中检索所有信息以及来自部门的学生人数( group by )。
预期成绩:
DepartmentId | Name | NumberOfStudents
001 | Maths | 2
002 | Physics | 2
我试图执行查询,但它没有给我任何结果:
Select DepartmentId, Name, (select count(*)
from Students s, Departments d
where s.DepartmentId = d.DepartmentId) as NumberOfStudents
我可以修改什么以获得所需的结果?
解决方案
也许?
SELECT
d.Name,
COUNT(s.StudentId) AS cnt
FROM students AS s
INNER JOIN dept AS d
ON s.DepartmentId = d.DepartmentId
GROUP BY d.Name
推荐阅读
- android - 如何创建三角形自定义形状android
- python - 一个 elif 语句似乎没有在它应该运行的时候运行
- python - mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on 'localhost' (111)
- ios - 为什么 iOS 数据保护代表会被多次调用?
- c# - 从 .Net System.DateTime 生成 Google Protobuf 时间戳
- python - 你如何比较python中函数的输出?
- jquery - 我已经使用了此代码。但无法禁用某些文本框。那么,我怎样才能禁用某些文本框?
- sql - SQL根据另一个表条件创建虚拟列
- office-js - 使用 On-send 功能删除 HTML 电子邮件中的嵌入图像
- arduino - TCS34725 2 个月后停止