获取每组分组结果的前n条记录
以下是最简单的示例,尽管任何解决方案都应该能够扩展到需要的n个顶级结果:
给出如下表格,包括人,组和年龄列,您如何获得每组中最老的2个人?(组内的关系不应该产生更多结果,但按字母顺序给出前2个)
+ -------- + ------- + ----- +
| 人| 集团| 年龄|
+ -------- + ------- + ----- +
| 鲍勃| 1 | 32 |
| 吉尔| 1 | 34 |
| 肖恩| 1 | 42 |
| 杰克| 2 | 29 |
| 保罗| 2 | 36 |
| 劳拉| 2 | 39 |
+ -------- + ------- + ----- +
期望的结果集:
+ -------- + ------- + ----- +
| 肖恩| 1 | 42 |
| 吉尔| 1 | 34 |
| 劳拉| 2 | 39 |
| 保罗| 2 | 36 |
+ -------- + ------- + ----- +
注意:此问题建立在前一个问题的基础上 - 获取每组分组SQL结果的最大值记录 - 从每个组中获取单个顶行,并从@Bohemian收到一个特定的MySQL特定答案:
select * from (select * from mytable order by `Group`, Age desc, Person) xgroup by `Group`
我希望能够建立起来,但我不知道如何。
慕尼黑5688855
相关分类