我有一個表,看起來像這樣(這僅僅是一些記錄和他們也更多的列太多,但這些是我關心的):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