SQL不显示所有行

时间:2014-10-17 14:00:42

标签: mysql sql database

我正在编写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,对于为什么这不起作用,我处于死胡同。

谢谢

1 个答案:

答案 0 :(得分:4)

您需要添加group by子句

SELECT courseTitle, 
       COUNT(sex) as sex 
FROM Course, Student WHERE sex = 'f'
group by courseTitle;

这将为每个courseTitle显示一行,而不是计算整个找到的数据集。