mysql - SQL 不显示所有行

标签 mysql sql database

我正在编写 mysql 代码,找不到解决方案。

问题是“列出各种类(class)名称,以及每门类(class)注册的女学生人数。按降序排列列表。”

有 2 门类(class),一门是软件工程,另一门是信息系统。

数据库中有6个女学生,6个都做IT和英语(一共显示12个结果)

当我执行下面的sql语句时,

SELECT courseTitle, sex
FROM Course, Student
WHERE sex = 'f';

它显示所有参加 IT 和英语的女性(出现 12 个实例)。

但是,当我使用计数来显示有多少女性进行 SE 和多少女性进行 IS 时,

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

它只显示一个类(class)标题 (SE) 并显示数字 12(所以 12 名女性),但不显示另一个类(class)标题 (IS)。

答案应该为 SE 显示 6,为 IS 显示 6,我不知道为什么这不起作用。

谢谢

最佳答案

您需要添加一个group by子句

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

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

关于mysql - SQL 不显示所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26426744/

相关文章:

php - PDO_MYSQL : general error 2014

javascript - 如何更改 sequelize model.findOne() 目标表?

php - 使用 * 和 % 的匹配语句均不返回精确结果

sql - 我能否以向后兼容的方式更改 SQL Server 表名?例如添加一个永久别名?

sql - 需要根据唯一 ID 按时间戳提取最新记录

sql - 强制执行 1 :1 and 1:Many cardinality in denormalized warehouse table with composite Primary Key

mysql - 如何在 MySQL *Prepared* 存储过程中使用多个参数

mysql - 在存储过程中检索多行

mysql - 我怎么知道 ssl 正在 mysql 复制中使用?

php - 如何一起计算 UP 票,然后按 UP 票从数据库 ORDER 中选择