我有一个简单的表学生,其中包含两个列名,性别为m或f。
我必须计算表中男性和女性的数量并将其显示在两个不同的列中。
结果应该是:
|Male |female |
| 5 | 4 |
答案 0 :(得分:3)
SELECT SUM(gender='m') AS male, SUM(gender='f') AS female FROM students;
说明:比较gender='m'
返回一个整数结果(1表示匹配,0表示nomatch),sum()将它们相加。
答案 1 :(得分:2)
我不知道m
,但标准的SQL是:
SELECT
SUM(CASE gender WHEN 'm' THEN 1 ELSE 0 END) AS Male,
SUM(CASE gender WHEN 'f' THEN 1 ELSE 0 END) AS Female
FROM student
答案 2 :(得分:1)
SELECT COUNT(female), COUNT(male) FROM student;
这应该这样做。
编辑:我只是重新阅读您的问题,并认为您的意思是只有一个“名称”和“性别”列,而不是“男性”和“女性”列。在这种情况下,使用SUM()函数将起作用。 (正如其他人已经回答的那样)