moh*_*iri -1 sql t-sql sql-server
我有以下查询来获取每个仓库中每个产品的总数量:
SELECT
warehouse, product, SUM(quantity)
FROM
inventory
GROUP BY warehouse, product
Run Code Online (Sandbox Code Playgroud)
这是我目前的结果:
warehouse product
San Fransisco iPhone 260
San Fransisco Samsung 300
San Jose iPhone 300
San Jose Samsung 350
Run Code Online (Sandbox Code Playgroud)
我想包括每个仓库的产品总数。这是我的预期输出:
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
Run Code Online (Sandbox Code Playgroud)
一种方法使用grouping sets:
select warehouse, product, sum(quantity)
from inventory
group by grouping sets ( (warehouse, product), (warehouse), () );
Run Code Online (Sandbox Code Playgroud)
鉴于:您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), () );
Run Code Online (Sandbox Code Playgroud)
Theproduct很棘手,因为有时是NULL,有时是,Total有时是product。
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |