注意:请JOIN
取消。
假设我有一个表user
,其字段名称为gender
。 gender
值可以是0
,1
,-1
。
我想分别知道那些值的数量。 我所知道的是使用三个sql查询,如下所示。
select count(1) from user where gender=0
select count(1) from user where gender=1
select count(1) from user where gender=-1
问题:如何将上述内容合并为一个查询? 顺便说一句,我是SQL的新手。
答案 0 :(得分:1)
select gender, count(*)
from user
group by gender
答案 1 :(得分:0)
GROUP BY
最有可能为您提供最佳服务。但是,你唯一的限制是" NO JOIN"。对于
GROUP BY
之外)
SELECT
(SELECT COUNT(1) FROM User WHERE gender = 0) AS genderNought
, (SELECT COUNT(1) FROM User WHERE gender = 1) AS genderOne
, (SELECT COUNT(1) FROM User WHERE gender = -1) AS genderMinusOne;
和
SELECT COUNT(1) AS hits, gender, 'genderNought' AS genderInWords FROM User WHERE gender = 0 UNION ALL
SELECT COUNT(1), gender, 'genderOne' FROM User WHERE gender = 1 UNION ALL
SELECT COUNT(1), gender, 'genderMinusOne' FROM User WHERE gender = -1;
。
请参阅SQL Fiddle。