对所有日期求和,但只保留最后一个日期
Sum over all dates but keep only last date
在SQL 服务器中,我想获取按预订 ID 分组的金额总和,以及每个预订 ID 的出发日期的最大日期作为额外列。
BOOKING ID | DEPARTURE DATE | AMOUNT
1 2013-04-12 100
1 2013-04-14 120
1 2013-04-9 90
2 2013-04-14 100
2 2013-04-18 150
3 2013-04-12 100
想要的结果:
BOOKING ID | MAX DATE | AMOUNT
1 2013-04-14 310
2 2013-04-18 250
3 2013-04-12 100
看起来是个简单的问题,但由于我有限的 SQL 服务器知识,我只能将临时表作为解决方案。
我的尝试:
SELECT
[BOOKING ID]
,MAX([DEPARTURE DATE])
,SUM(AMOUNT)
from table
GROUP BY BOOKING ID, [DEPARTURE DATE]
有什么简单的解决方案吗?
谢谢!
只需使用聚合:
select booking_id, max(depature_date) as max_date, sum(amount) as amount
from mytable
group by booking_id
在SQL 服务器中,我想获取按预订 ID 分组的金额总和,以及每个预订 ID 的出发日期的最大日期作为额外列。
BOOKING ID | DEPARTURE DATE | AMOUNT
1 2013-04-12 100
1 2013-04-14 120
1 2013-04-9 90
2 2013-04-14 100
2 2013-04-18 150
3 2013-04-12 100
想要的结果:
BOOKING ID | MAX DATE | AMOUNT
1 2013-04-14 310
2 2013-04-18 250
3 2013-04-12 100
看起来是个简单的问题,但由于我有限的 SQL 服务器知识,我只能将临时表作为解决方案。
我的尝试:
SELECT
[BOOKING ID]
,MAX([DEPARTURE DATE])
,SUM(AMOUNT)
from table
GROUP BY BOOKING ID, [DEPARTURE DATE]
有什么简单的解决方案吗?
谢谢!
只需使用聚合:
select booking_id, max(depature_date) as max_date, sum(amount) as amount
from mytable
group by booking_id