【发布时间】:2020-07-19 09:53:02
【问题描述】:
我在 SQL Server 中有下表:
category consumption total id
-----------------------------------
A 40 100 1
A 60 200 2
B 60 100 6
B 40 200 7
C 10 50 3
预期输出:
consumption total
------------------
100 400
逻辑:
- 仅选择类别 - A、B
- 如果类别中存在多条记录 - A、B。请选择一条 ID 为 MAX 的记录
- 将消耗和总计相加并显示结果
A 类,有 2 条记录可用:选择 MAX id 的记录。 在这种情况下,MAX id = 2。消费 = 60,总计 = 200
类别 B,有 2 条记录可用:选择具有 MAX id 的记录。 在这种情况下,MAX id = 7。消费 = 40,总计 = 200
输出将是消耗量和总量的总和。
我能够为一个类别起草以下查询,但如何获得另一个类别和总和:
Select
s.consumption, s.total, s.rn
From
(select
consumption, total
row_number() over (partition by category order by id desc) as rn
from
[dbo].[Table_1]
where
category = ‘A’) as s
where
s.rn = 1
【问题讨论】:
标签: sql sql-server sql-server-2008