SQL将范围分组为值的总和

SQL将范围分组为值的总和,sql,oracle11g,Sql,Oracle11g,我有一个表,其中包含一些项目的库存信息 代理ID 项目编号 仓库标识 数量 批处理 年龄 100 IT101 1. 10 B001 5. 100 IT101 2. 13 B002 8. 100 IT101 1. 15 B003 18 100 IT102 3. 10 B005 42 您需要使用条件聚合: select AGENT_ID, ITEM_ID, WAREHOUSE , sum(case when age between 1 and 10 then QTY end) "

我有一个表,其中包含一些项目的库存信息

代理ID 项目编号 仓库标识 数量 批处理 年龄 100 IT101 1. 10 B001 5. 100 IT101 2. 13 B002 8. 100 IT101 1. 15 B003 18 100 IT102 3. 10 B005 42
您需要使用条件聚合:

select AGENT_ID, ITEM_ID, WAREHOUSE
      , sum(case when age between 1 and 10 then QTY end) "R1(1-10)"
      , sum(case when age between 11 and 20 then QTY end) "R2(11-20)"
      , sum(case when age > 20 then QTY end) "R3(21<)"
From table 
group by AGENT_ID, ITEM_ID, WAREHOUSE
选择代理ID、物料ID、仓库
,总和(如果年龄介于1到10岁之间,则数量结束)“R1(1-10)”
,总和(如果年龄在11到20岁之间,则数量结束)“R2(11-20)”

,sum(年龄>20岁时的情况下,数量结束)“R3(21这非常有效!