对所有日期求和,但只保留最后一个日期

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