我有一张超过150k行和大约40列的表格。有很多重复,大多数行只是日期不同。我想保留具有最新日期的行(某些日期是将来的),其中所有其他列都是相同的。 我正在使用Access数据库。
粗略地说,表格如下:
Supplier code, Contract number, Incoterms, Currency, Price, First day of validity, Last day of validity
--------------------------
47650 2806751M DDA EUR 0.01 01/03/2010 31/12/2012
47650 2806751M DDA EUR 0.02 01/01/2013 31/12/2014
47650 2806751M DDA EUR 0.03 01/01/2015 31/12/2016
47650 2806751M DDA EUR 0.04 01/01/2017 31/12/2019
所有这些列都包含几乎相同的数据,但合同的有效期是重要的变量,因为它决定了价格。这就是为什么我要保留包含最新日期的行。
答案 0 :(得分:1)
“所有其他列都相同”:这会转换为所有其他列的GROUP BY和日期的MAX:
select all other columns,
MAX(datecol)
from tab
group by all other columns