答案 0 :(得分:3)
SELECT PR.WBS1, PR.WBS2
FROM PR
WHERE (
SELECT COUNT(*)
FROM PR p
WHERE p.WBS1 = PR.WBS1
AND p.WBS2 >= PR.WBS2
) <= 2;
答案 1 :(得分:3)
您可以使用ROW_NUMBER()。 它基于WBS1进行分组,然后从每个组中选择两个。
;WITH CTE AS (
SELECT
PR.WBS1,
PR.WBS2,
ROW_NUMBER() OVER( PARTITION BY PR.WBS1 ORDER BY PR.WBS2) AS RN
FROM
PR
)
SELECT
WBS1,
WBS2
FROM
CTE
WHERE
RN <=2
答案 2 :(得分:2)
我不得不在上面的答案中改变一些事情。
SELECT PR.WBS1, PR.WBS2
FROM PR
WHERE (
SELECT COUNT(*)
FROM PR p
WHERE p.WBS1 = PR.WBS1
AND p.WBS2 <= PR.WBS2
) <= 2;