SQL高级查询的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 16:14:14
一个表有3个列
id name(名称) state(状态只能为1或0)
1 电视 0
2 电视 0
3 电视 1
4 电视 0
5 电视 1
6 电视 0
5 冰箱 1
6 冰箱 0
怎么写才能查出state等于0的总数和所有商品全部的总数
结果:
名称 库存 总数
电视 4 6
冰箱 1 2

select name,count (case state when '0' then 1 end),count (name) from table group by name

select name, SUM (case state when '0' then 1 else 0 end) AS 库存 ,count (*) AS 总数 from 表名 group by name

select name as 名称,sum(case state when 0 then 1 else 0 end)as 库存, count(*) as 总数
from 表
group by name

结贴吧。一二楼都对,不过二楼的更准确,直接拷过去就行了