0

我有一个带有 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 查询来执行此操作?

谢谢 !

4

1 回答 1

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
于 2013-07-18T19:06:57.073 回答