最多选择每组
问题描述:
的x行拥有的表:最多选择每组
id | name | job | rank
01 john teacher 4
02 mark teacher 2
03 phil plummer 1
04 dave teacher 7
05 jim plummer 9
06 bill plummer 2
我如何可以选择多达2行,每行工作的(如果可能的话各组排序按职级ASC,使最低的两个每个组的排名被选中)。我期待的结果是:
02 mark teacher 2
01 john teacher 4
03 phil plummer 1
06 bill plummer 2
这基本上是按工作分组,按限制为2,按排名排序。我一直在尝试与GROUP BY以及LEFT JOIN,但我无法弄清楚如何做到这一点。使用GROUPING BY作业创建作业的“临时列表”时,我如何加入多个作业?
答
SELECT id, name, job, rank
FROM TableName a
WHERE
(
SELECT COUNT(*)
FROM TableName as f
WHERE f.job = a.job AND
f.rank <= a.rank
) <= 2;
挑的最大正每组那些上千万元的问题之一,你有你的答案 – fancyPants 2013-03-08 13:52:51
的可能重复[MySQL的 - 如何申请LIMIT组] (http://stackoverflow.com/questions/4748204/mysql-how-to-apply-limit-to-group) – fancyPants 2013-03-08 13:53:18
您链接的问题限制了将它们分组后发现的整体。我正在寻找一个查询按组查找,每组有多个命中。不是重复的imo,反正也不是这个问题。 – kontur 2013-03-08 18:27:43