【发布时间】:2008-09-18 19:13:00
【问题描述】:
我有一个简单的表格 cmets (id INT, revision INT, comment VARCHAR(140)) 有一些内容如下:
1|1|hallo1|
1|2|hallo2|
1|3|hallo3|
2|1|hallo1|
2|2|hallo2|
我正在寻找一条 SQL 语句,它将返回每条评论的最高版本:
1|3|hallo3|
2|2|hallo2|
我想出了这个解决方案:
select id, revision, comment
from comments
where revision = (
select max(revision)
from comments as f
where f.id = comments.id
);
但在大型数据集上速度很慢。有没有更好的查询来完成这个?
【问题讨论】:
-
您能否考虑重命名主题以反映优化或性能?
-
使用窗口函数通常更快。