我在这里找到了许多相关的主题,但没有真正解决我的问题。
销售表:
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
我可以按销售额最高的人分组,但如果一个人的所有销售额相同,我就无法获得最新的交易。
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