我有一些名为order_id和purchase_amount的列,我需要编写一个查询来计算每个增量范围100美元内的订单数量以及范围的值。例如,它必须返回12个订单之间的价格在0-100美元之间,9个订单在101-200美元之间并继续这样,每次增加100美元,如下所示。而且我很难理解如何开始。
计数|范围
12 | $ 0-100
9 | $ 101-200
答案 0 :(得分:0)
使用SQL函数SUM结合CASE来创建条件。
Select SUM(CASE WHEN OrderValue >= 0 AND OrderValue < 100 THEN 1 ELSE 0 END) AS Count FROM Table;
那应该给你一个起点。
答案 1 :(得分:0)
您没有提供任何源表数据样本,所以我确实使用了TPCH中的标准表Orders来构建以下内容:
select
case
when o_totalprice < 1000 then '1k-'
when o_totalprice >= 1000 and o_totalprice < 5000 then '1k-5k'
when o_totalprice >= 5000 and o_totalprice < 10000 then '5k-10'
when o_totalprice >= 10000 and o_totalprice < 20000 then '10k-20k'
when o_totalprice >= 20000 and o_totalprice < 50000 then '20k-50k'
else '50k+'
end as 'Range',
count(*) as 'Range-Count'
from
orders
group by 1
;
希望这能回答你的问题...