我得到了一个不同的解决方案,即获取每个组中最后一篇文章的id,然后使用第一个查询的结果作为
WHERE x IN
构建:
SELECT id, name, other_columns
FROM messages
WHERE id IN (
SELECT MAX(id)
FROM messages
GROUP BY name
);
与其他一些解决方案相比,我不知道这是如何执行的,但对于我的表来说,它的工作非常出色,有300多万行。(4秒执行,1200+个结果)
这应该在mysql和sql server上都有效。