【发布时间】:2011-08-28 17:00:34
【问题描述】:
如何从表中选择前 n 个最大值?
对于这样的表:
column1 column2
1 foo
2 foo
3 foo
4 foo
5 bar
6 bar
7 bar
8 bar
对于 n=2,结果需要是:
3
4
7
8
下面的方法只选择每个组的最大值。
SELECT max(column1) FROM table GROUP BY column2
返回:
4
8
【问题讨论】:
-
您需要 n=2 的解还是任意 n 的一般解?
-
我实际上更新了解决方案 - 如果您想进一步解释它的工作原理(并且您无法从文章中解决),请告诉我。
-
@Unreason,非常感谢您的解决方案,效果很好,解释很清楚
-
所有学分都应该转到 Quassnoi 的精彩博客,如果您要针对相当大的数据集运行查询,您应该阅读有关性能的详细信息(mysql 有时需要一些帮助,这就是其中一种情况) .
标签: mysql greatest-n-per-group