相关疑难解决方法(0)

MySQL中的ROW_NUMBER()

MySQL是否有一种很好的方式来复制SQL Server功能ROW_NUMBER()

例如:

SELECT 
    col1, col2, 
    ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow
FROM Table1
Run Code Online (Sandbox Code Playgroud)

然后,我可以,例如,添加一个限制intRow为1 的条件,以获得col3(col1, col2)对最高的单行.

mysql sql row-number rank greatest-n-per-group

268
推荐指数
11
解决办法
49万
查看次数

获取每组分组结果的前n条记录

以下是最简单的可能示例,但任何解决方案都应该能够扩展到需要的n个顶级结果:

根据下面的表格,使用人员,组和年龄列,您将如何获得每组中最老的2个人?(组内的关系不应该产生更多结果,但按字母顺序给出前2个)

+--------+-------+-----+
| Person | Group | Age |
+--------+-------+-----+
| Bob    | 1     | 32  |
| Jill   | 1     | 34  |
| Shawn  | 1     | 42  |
| Jake   | 2     | 29  |
| Paul   | 2     | 36  |
| Laura  | 2     | 39  |
+--------+-------+-----+

期望的结果集:

+--------+-------+-----+
| Shawn  | 1     | 42  |
| Jill   | 1     | 34  |
| Laura  | 2     | 39  |
| …

mysql sql greatest-n-per-group mysql-variables

132
推荐指数
8
解决办法
14万
查看次数