我有此表用于文档(此处为简化版): +------+-------+--------------------------------------+ | id | rev | content | +------+-------+--------------------------------------+ | 1 | 1 | ... | | 2 | 1 | ... | | 1 | 2 | ... | | 1 | 3 | ... | +------+-------+--------------------------------------+ 如何为每个ID选择一行并且仅选择最大转速?根据上述数据,结果应包含两行:[1, 3, …]和[2, 1, ..]。我正在使用MySQL。
+------+-------+--------------------------------------+ | id | rev | content | +------+-------+--------------------------------------+ | 1 | 1 | ... | | 2 | 1 | ... | | 1 | 2 | ... | | 1 | 3 | ... | +------+-------+--------------------------------------+
目前,我在while循环中使用检查来检测和覆盖结果集中的旧版本。但这是获得结果的唯一方法吗?没有SQL解决方案吗?
更新作为答案提示,有是一个SQL的解决方案,并且这里sqlfiddle演示。
更新2在添加上述sqlfiddle之后,我注意到问题被投票的速率已经超过答案的被投票速率。那不是意图!小提琴基于答案,尤其是已接受的答案。