ここで多くの関連トピックを見つけましたが、私の問題に実際に対処したものは何もありませんでした。
SalesTable:
PersonID | SaleAmount | SaleDate | TransactionID
6117 | 10 | 2013-03-13 | 1
6117 | 10 | 2013-03-11 | 2
6400 | 100 | 2013-03-12 | 3
6400 | 10 | 2013-02-05 | 4
6525 | 0 | 2013-03-14 | 5
6400 | 0 | 2013-04-01 | 6
一人一人からの最高の販売額の取引だけが欲しいです。同じ人からのすべての取引の販売額が同じである場合は、日付ごとに最新のものを返します。
期待される結果:
PersonID | SaleAmount | SaleDate | TransactionID
6117 | 10 | 2013-03-13 | 1
6400 | 100 | 2013-03-12 | 3
6525 | 0 | 2013-03-14 | 5
売り上げが最も多い人でグループ化することは問題ありませんでしたが、1人の売り上げがすべて同じであると、最新の取引を取得できませんでした。
select personid, max(saleamount) from SalesTable group by personid
これは間違っているでしょう
select personid, max(saleamount), max(saledate)
from SalesTable
group by personid
6400の日付が間違ってしまうからです
6117 | 10 | 2013-03-13 | 1
6400 | 100 | 2013-04-01 | 3
6525 | 0 | 2013-03-14 | 5