Sql 包括使用分组的所有仓库的所有产品总数
我通过以下查询获得每个仓库中每个产品的总数量:Sql 包括使用分组的所有仓库的所有产品总数,sql,sql-server,tsql,Sql,Sql Server,Tsql,我通过以下查询获得每个仓库中每个产品的总数量: 选择 仓库、产品、金额(数量) 从 库存 按仓库、产品分组 这是我目前的结果: warehouse product San Fransisco iPhone 260 San Fransisco Samsung 300 San Jose iPhone 300 San Jose Samsung 350 我想包括每个仓库的产品总数。 这是我的预期输出:
选择
仓库、产品、金额(数量)
从
库存
按仓库、产品分组
这是我目前的结果:
warehouse product
San Fransisco iPhone 260
San Fransisco Samsung 300
San Jose iPhone 300
San Jose Samsung 350
我想包括每个仓库的产品总数。
这是我的预期输出:
warehouse product
San Fransisco iPhone 260
San Fransisco Samsung 300
San Fransisco Total 560
San Jose iPhone 300
San Jose Samsung 350
San Jose Total 650
All warehouses Total 1210
一种方法使用
分组集
:
select warehouse, product, sum(quantity)
from inventory
group by grouping sets ( (warehouse, product), (warehouse), () );
假设:键中没有NULL
值,您可以使用coalesce()
获取总计:
select coalesce(warehouse, 'Total') as warehouse,
(case when warehouse is not null
then coalesce(product, 'Total')
end) as product,
sum(quantity)
from inventory
group by grouping sets ( (warehouse, product), (warehouse), () );
产品
很棘手,因为有时它是空的
,有时是总数
,有时是产品
查看或汇总
。
select coalesce(warehouse, 'Total') as warehouse,
(case when warehouse is not null
then coalesce(product, 'Total')
end) as product,
sum(quantity)
from inventory
group by grouping sets ( (warehouse, product), (warehouse), () );