我有一个表,看起来像这样(这仅仅是一些记录和他们也更多的列太多,但这些是我关心的):SQL Server和聚合函数选择
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的最大值(amt)相对应的nbr,amt和日期。
我有这样的查询,它按nbr对它进行分组,并选择max(amt )但它不会让我选择日期,因为它不在聚合函数中,但如果我把它放在一个聚合函数中,它会选择max(日期),它不会对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'
,所以如果我更改查询到这个我在哪里定义它抓住最大(AMT)的结果没有显示至少应最大。
如果您有两个不同的日子发生了相同的最高AMT,你会希望你第一次打的量或最近一次袭击是多少? –
无论哪一个更容易实现 – Jt2ouan