我有一个看起来像这样的表(这只是一些记录,它们也是更多列,但这些是我关心的):
nbr amt date
1 10 10/30/2012
1 15 1/30/2012
1 50 11/30/2012
2 10 4/30/2012
2 1000 5/30/2012
2 45 1/15/2012
4 90 12/30/2012
4 89 8/30/2012
3 100 7/30/2012
我正在尝试使用 SQL Server 2012 选择与每个 nbr 的 max(amt) 对应的 nbr、amt 和日期。
到目前为止,我有这样的查询,它按 nbr 分组并选择 max(amt) 但它不会让我选择日期,因为它不在聚合函数中,但如果我把它放在聚合函数中,它会选择 max(date)这与 amt 的实际日期不对应:
,topamt as (
select
nbr
,amt
,date
,amtrank = row_number() over (partition by ah.member_nbr order by ah.tran_amt desc)
from HISTORY ah
amt>=10
and id=6061
and date between '11-01-2012' and '12-31-2012'
因此,如果我将查询更改为我在哪里定义它以获取 max(amt),则结果至少不会显示最大值。