如何解决如何在SQL案例研究中按每个级别汇总?
select
Count(CASE
WHEN quantity * saleprice <= 400 THEN 'B'
WHEN quantity * saleprice between 400 and 999 THEN 'S'
WHEN quantity * saleprice between 1000 and 2099 THEN 'G'
WHEN quantity * saleprice >=2100 THEN 'D' END) AS Level,c.customerid CountOfCustomers
from customers c join sales s on c.customerid = s.customerid join saleitem si on s.saleid = si.saleid
group by c.customerid
我需要在此Case语句中按每个级别进行汇总,但是当我将整个case语句放在group by子句中时,我只会得到一行输出。
解决方法
我怀疑您想要两个层次的汇总:首先根据客户的总销售额将客户放入存储桶中,然后按每个存储桶计算客户数量:
select lvl,count(*) cnt_customers
from (
select case
when sum(quantity * saleprice) < 400 then 'B'
when sum(quantity * saleprice) < 1000 then 'S'
when sum(quantity * saleprice) < 2100 then 'G'
when sum(quantity * saleprice) >= 2100 then 'D'
end as lvl
from customers c
inner join sales s on c.customerid = s.customerid
inner join saleitem si on s.saleid = si.saleid
group by c.customerid
) t
group by lvl
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。