select a.man,b.woman from (Select count(*) as man from aa where Sex=0) as a,(select count(*) as woman from aa where Sex=1 ) as b
你想统计男女人数吧?使用group byselect [sex],count(name) 人数 from aa group by sex
aa:Name sex Age a 0 20 b 1 30 c 0 20 d 0 30请问如何在一条语句实现统计sex=0和age=20各有多少人?
SELECT 'SEX=0' AS TYPE ,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0 UNION SELECT 'AGE=20' AS TYPE,COUNT(*) AS QUANTITY WHERE AGE=20
不好意思写漏了一个 FROM AA 用UNION可以实现的。SQL 帮助多看看吧,很多东西都可以查到的。
SELECT 'SEX=0' AS TYPE ,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0? 可以这样吗?数据不对, 应该是这样吧 SELECT SEX,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0 group by sex 但这样不能union了
你用UNION 就不需要GROUP BY 了。UNION的用法就是列数目要一样。而且像你这样写法也是没必要的SELECT SEX,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0 group by sex,GROUP BY,如果那个WHERE 条件不要的话,可以使用GROUP BY,意思就是求出SEX=1 和SEX=0 的数目各有几个。而你现在已经知道SEX是等于0了所以GROUP BY 可以省略,因为没必要再分组了。
还是没弄明白怎么搞,是不是 select count(*) from aa where sex=0 union select count(*) from aa where age=20
select sum(case when sex=0 then 1 else 0 end) man,sum(case when sex=1 then 1 else 0 end) woman from aa
pengdali没有完全理解我的意思,我是想同时查出sex=0和age=20分别有多少人啊?能不能一条语句实现 aa:Name sex Age a 0 20 b 1 30 c 0 20 d 0 30请问如何在一条语句实现统计sex=0和age=20各有多少人?
to rion10() ,我不是已经帮你解决了吗?快结帐吧
我这边还是不行啊, SELECT 'SEX=0' AS TYPE ,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0 UNION SELECT 'AGE=20' AS TYPE,COUNT(*) AS QUANTITY WHERE AGE=20 还是出错
select count(sex),count(age) from aa where sex=0 or age=20
select count(sex),count(age) from aa where sex=0 or age=20??这也可以? 忘说了,我的是mysql,不支持SELECT 'SEX=0' AS TYPE ,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0 UNION SELECT 'AGE=20' AS TYPE,COUNT(*) AS QUANTITY WHERE AGE=20
將大力的略做修改 select sum(case when sex=0 then 1 else 0 end) man,sum(case when age>20 then 1 else 0 end) per from aa
where Sex=0) as a,(select count(*) as woman from aa
where Sex=1 ) as b
a 0 20
b 1 30
c 0 20
d 0 30请问如何在一条语句实现统计sex=0和age=20各有多少人?
UNION SELECT 'AGE=20' AS TYPE,COUNT(*) AS QUANTITY WHERE AGE=20
用UNION可以实现的。SQL 帮助多看看吧,很多东西都可以查到的。
可以这样吗?数据不对,
应该是这样吧
SELECT SEX,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0 group by sex
但这样不能union了
select count(*) from aa where sex=0
union
select count(*) from aa where age=20
如果要把两列分列出来,可以用CASE
aa:Name sex Age
a 0 20
b 1 30
c 0 20
d 0 30请问如何在一条语句实现统计sex=0和age=20各有多少人?
SELECT 'SEX=0' AS TYPE ,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0
UNION SELECT 'AGE=20' AS TYPE,COUNT(*) AS QUANTITY WHERE AGE=20
还是出错
忘说了,我的是mysql,不支持SELECT 'SEX=0' AS TYPE ,COUNT(*) AS QUANTITY FROM AA WHERE SEX=0
UNION SELECT 'AGE=20' AS TYPE,COUNT(*) AS QUANTITY WHERE AGE=20
select sum(case when sex=0 then 1 else 0 end) man,sum(case when age>20 then 1 else 0 end) per from aa