我正在编写mysql代码而无法找到解决方案。
问题是“列出各种课程标题,每个课程都有登记的女学生人数。按降序排列。”
有2门课程,一门是软件工程,另一门是信息系统。
数据库中有6名女学生,所有6名学生都使用IT和英语(共显示12个结果)
当我执行以下sql语句时,
SELECT courseTitle, sex
FROM Course, Student
WHERE sex = 'f';
显示所有参与IT和英语的女性(提供12个实例)。
然而,当我使用计数来显示有多少女性做SE时,有多少女性做,
SELECT courseTitle, COUNT(sex) as sex
FROM Course, Student
WHERE sex = 'f';
它只显示一个课程标题(SE)并显示数字12(所以12个女性),但它不显示其他课程标题(IS)。
对于SE,答案应该显示6,对于IS,答案应该显示6,对于为什么这不起作用,我处于死胡同。
谢谢
答案 0 :(得分:4)
您需要添加group by子句
SELECT courseTitle,
COUNT(sex) as sex
FROM Course, Student WHERE sex = 'f'
group by courseTitle;
这将为每个courseTitle显示一行,而不是计算整个找到的数据集。