到目前为止,我有一个cte查询返回一个结果,我想迭代结果集,并根据类型列选择每组2个记录,即...... 我可以为类型20返回2行,为类型21返回2行,为类型22返回2行记录等...我在这里尝试了一些函数但是总是返回2条记录而不是每条上面提到的2条记录。感谢
Acct Cde type AcctNbr
123456 50 20 2345678
123457 50 20 2345678
123458 50 20 2345678
123459 50 20 2345678
123460 50 21 2345678
123461 50 21 2345678
123462 50 21 2345678
123463 50 21 2345678
123464 50 22 2345678
123465 50 22 2345678
123466 50 22 2345678
123467 50 22 2345678
123468 50 23 2345678
我正在尝试每个类型列返回至少2行。我用了一个cte 主查询和
答案 0 :(得分:2)
你不会说你如何选择你想要的两行,所以我可以通过Acct任意选择订购。然后使用ROW_NUMBER函数按类型对行进行编号。
WTIH YourFirstCTE AS (
-- Appropriate code goes here
),
cteRowNum AS (
SELECT Acct, Cde, type, AcctNbr,
ROW_NUMBER() OVER(PARTITION BY type ORDER BY Acct) AS RowNum
FROM YourFirstCTE
)
SELECT Acct, Cde, type, AcctNbr
FROM cteRowNum
WHERE RowNum <= 2;