我有一个表,其中包含多个版本的数据。每行都有一个标识符和一个版本。我需要选择具有较高版本的行,但不是每一行都具有相同的版本。例如:
str_identifier | version | other_data
------------------ |---------------------
abcd | 1
abcd | 3
abcd | 3
qqqq | 2
qqqq | 4
rrrr | 1
rrrr | 1
我需要选择版本3的abcd行,版本4的qqqq行和版本1的rrrr行。每个str_identifier的每个版本都有多个记录,这就是为什么要重复它们的原因。
先感谢您。
您可以JOIN
对最大版本号的派生表使用,以获取具有该最大值的所有行:
SELECT v.*
FROM versions v
JOIN (SELECT str_identifier, MAX(version) AS version
FROM versions
GROUP BY str_identifier) m ON m.str_identifier = v.str_identifier AND m.version = v.version
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句