SQL,计算group by分组后组内不同值的数量

来源:互联网 发布:三国吴国知乎 编辑:程序博客网 时间:2024/05/23 10:29

SQL,group by分组后分别计算组内不同值的数量

如现有一张购物表shopping

name cargo 小明 笔 小明 橡皮 小明 笔 小明 橡皮 小明 橡皮 小红 笔 小红 橡皮 小红 橡皮

现要求小明和小红分别买了多少笔和多少橡皮,形成以下格式

姓名 笔 橡皮 小明 2 3 小红 1 2
select name as 姓名,sum( case when cargo='笔' then 1 else 0 end ) as 笔,sum( case when cargo='橡皮' then 1 else 0 end ) as 橡皮from shopping group by name;

注:这里不能用count计算行数,count只是别分组后每组所有行的数目

原创粉丝点击