我有一个带有ID和多个信息列的表。但有时候,我可以有一个ID的多个数据,所以我添加了一个名为“Sequence”的列。这是一个缩短的例子:
ID Sequence Name Tel Date Amount
124 1 Bob 873-4356 2001-02-03 10
124 2 Bob 873-4356 2002-03-12 7
124 3 Bob 873-4351 2006-07-08 24
125 1 John 983-4568 2007-02-01 3
125 2 John 983-4568 2008-02-08 13
126 1 Eric 345-9845 2010-01-01 18
所以,我想只获得这些内容:
124 3 Bob 873-4351 2006-07-08 24
125 2 John 983-4568 2008-02-08 13
126 1 Eric 345-9845 2010-01-01 18
任何人都可以告诉我如何构建SQL查询来执行此操作?
谢谢!
答案 0 :(得分:2)
您可以使用group by
计算最大序列。然后,您可以使用join
仅获取原始数据中的最大值。
假设您的表名为t
:
select t.*
from t join
(select id, MAX(sequence) as maxs
from t
group by id
) tmax
on t.id = tmax.id and
t.sequence = tmax.maxs