【发布时间】:2021-03-02 16:13:33
【问题描述】:
在 SQL Server 中,我想获取按 BOOKING ID 分组的 AMOUNT 的总和,以及每个 BOOKING ID 的 DEPARTURE DATE 的最大日期作为额外列。
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 Server 的了解有限,我只能将临时表视为一种解决方案。
我的尝试:
SELECT
[BOOKING ID]
,MAX([DEPARTURE DATE])
,SUM(AMOUNT)
from table
GROUP BY BOOKING ID, [DEPARTURE DATE]
有什么简单的解决方案吗?
谢谢!
【问题讨论】:
-
MAX和SUM有什么问题?你尝试过什么?为什么它不起作用? -
我尝试按 BOOKING ID 和 DATE 对 AMOUNT 和分组求和,但随后它返回每个 DATE 的总和。我还尝试对 max(DATE) 的 AMOUNT 求和,但它并没有对其他日期求和。
-
您通常
GROUP BY与您SELECT相同的列,除了那些是设置函数的参数。将在这里GROUP BY [BOOKING ID]。 -
哎呀,这确实是一个非常愚蠢的问题。我应该删除问题还是保留给其他初学者?
标签: sql sql-server sum max aggregate-functions