我有一个存储行的表,其中一些字段是id,name,date和version。我可以有两行具有相同的name
但是版本不同,因此文件可以有多个版本。
我的查询:
SELECT id, name, date, version FROM my_table AS a
示例输出(每个新行是另一行):
1 | abc.xls | 1488363249 | 1
2 | example.xls | 1488363232 | 1
3 | thirdfile.xls | 1488362312 | 1
4 | thirdfile.xls | 1488363249 | 2
我想做的只是带回以下内容:
1 | abc.xls | 1488363249 | 1
2 | example.xls | 1488363232 | 1
4 | thirdfile.xls | 1488363249 | 2
发生的事情是它注意到id 3和4是相同的文件名,它只带回了版本2,因为它是该文件名的最新版本
如何在单个查询中实现此目的。
答案 0 :(得分:1)
这样的事情应该有效
SELECT t.id, t.name, t.date, t.version
FROM my_table t
JOIN (SELECT max(version) max_version, name FROM my_table GROUP BY name) t1
ON t.version= t1.max_version AND t.name= t1.name