请教一条sql统计语句
发布网友
发布时间:2022-04-09 08:18
我来回答
共4个回答
热心网友
时间:2022-04-09 09:48
oracle
select id,
sum(case
when sex='1' then
1
else
0
end) as 男,
sum(case
when sex ='1' then
0
else
1
end) as 女,
count(id) as 总数
from 表名
group by id
热心网友
时间:2022-04-09 11:06
“但是提示不一至的数据类型:要求char 得到的却是number”
这句是在什么时候提示的?sex 是字符类型?还是你需要的结果是字符型?
如果sex是字符型,则语句为:
select id,sum(case sex when '1' then 1 else 0 end) as 男,sum(case sex when '1' then 0 else 1 end) as 女,count(id) as 总数
from 表名 group gy ID
如果结果需要转换成字符类型,则语句为:
select id,cast(sum(case sex when '1' then 1 else 0 end) as varchar) as 男,cast(sum(case sex when '1' then 0 else 1 end),as varchar) as 女,cast(count(id) as varchar) as 总数
from 表名 group gy ID
热心网友
时间:2022-04-09 12:40
你的where是不是加错地方了?应该加在 From 表名 和 group 之间。
热心网友
时间:2022-04-09 14:32
select id,男=sum(case
when sex=1 then 1
else 0
end)
,女=sum(case
when sex=0 then 1
else 0
end)
,总数=sum(case
when sex=1 then 1
else 0
end)+
sum(case
when sex=0 then 1
else 0
end)
from asd
group by id
asd表名 这个就OK
参考资料:asd