oracle sql - 用于不同值i的N行数

时间:2016-12-09 23:05:45

标签: sql oracle11g

假设我有TableA w / ID列:

表A

ID

1

2

3

我希望在 TableA 中为每个不同的ID返回N行 (下面的例子是N = 3)

预期输出

ID SEQ

1 1

1 2

1 3

2 1

2 2

2 3

3 1

3 2

3 3

这可能是单个SQL语句吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

仅获取具有单个ID的行

SELECT * FROM tab_name WHERE col1 = N ORDER BY col2 [DESC]

获取每个ID下的记录数

SELECT id, count(*) as count FROM tab_name GROUP BY id 

获取每个特定ID的特定行数

SELECT *
FROM
    (SELECT id, col2, ROW_NUMBER() OVER(PARTITION BY t.id ORDER BY col3) colX
     FROM tab_name t) outerT 
WHERE 
    outerT.colX < N + 1