【发布时间】:2016-11-07 09:49:26
【问题描述】:
我有一张桌子documents(id、user_id、unique_document_id、version、date)。
条目示例如下:
(1, 1, 1001, 1, null),
(1, 1, 1001, 2, null),
(1, 2, 1002, 1, null)
目前我有一个选择并显示详细信息的查询:
select d.* from documents d
where d.user_id = 1
order by d.date desc
limit 10
offset 0
但我想要使用 unique_document_id 和 having max(version) 的非重复行。
输出应该是:(1, 1, 1001, 2, null), (1, 2, 1002, 1, null)
我可以通过修改查询来实现这一点,还是需要在其他地方处理?
使用group by unique_document_id and max(version)的东西。
【问题讨论】:
-
是的,
group by和max(version)确实是要走的路。您需要按所有未聚合的字段进行分组。 -
首先,确定您使用的是哪个 RDBMS。
-
如果你使用的是SQL Server,可以使用ROW_NUMBER()解析函数来实现。
标签: java mysql sql sql-server postgresql