SQL查询以每个ID提取两个记录

问题描述 投票:0回答:1

假设我有这张桌子

ID  CLASS
1   A
1   A
1   A
2   A
2   B
2   B
3   C
4   C

如何使用Oracle SQL为每个ID获取两个随机记录

sql oracle
1个回答
0
投票
WITH cte AS (SELECT id, 
                    class, 
                    ROW_NUMBER() OVER ( PARTITION BY id ORDER BY DBMS_RANDOM.NORMAL ) rn
             FROM test)
SELECT id, class
FROM cte 
WHERE rn <= 2

fiddle

© www.soinside.com 2019 - 2024. All rights reserved.