私はこのようなテーブルを持っています(これはレコードのほんの一部であり、それらもより多くの列ですが、これらは私が気にかけているものです):
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、および date を選択しようとしています。
これまでのところ、nbr でグループ化して max(amt) を選択するこのようなクエリがありますが、集計関数ではないため日付を選択できませんが、集計関数に入れると max(date) が選択されます。これは、金額に付随する実際の日付に対応していません。
,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) を取得するように定義している場所で、結果に少なくとも最大値が表示されません。