筛选出具有多个行号的记录SQL

筛选出具有多个行号的记录SQL,sql,oracle,Sql,Oracle,是否可以使用ROWNUMBER筛选出具有多个ROWNUMBER的记录 例如 是否包含只有一行的记录? 或 排除具有多个rn的记录? 迄今为止的代码: SELECT * FROM (SELECT ID, blah, blah2, ROWNUMBER() OVER(PARTITION BY ID ORDER BY blah, blah2) AS rn ORDER BY ID) WHERE rn IS ONLY 1; 事实上,你做得几

是否可以使用ROWNUMBER筛选出具有多个ROWNUMBER的记录

例如

是否包含只有一行的记录? 或

排除具有多个rn的记录? 迄今为止的代码:

SELECT * 
FROM 
    (SELECT 
         ID, blah, blah2, 
         ROWNUMBER() OVER(PARTITION BY ID ORDER BY blah, blah2) AS rn 
     ORDER BY ID) 
WHERE rn IS ONLY 1;

事实上,你做得几乎正确:

SELECT * 
FROM 
    (SELECT 
         ID, blah, blah2, 
         ROW_NUMBER() OVER(PARTITION BY ID ORDER BY blah, blah2) AS rn
     FROM table_name
     WHERE ... 
    ) 
WHERE rn = 1;

使用count*而不是row_numbers是否要消除ID重复的记录?你差不多完成了。使用行号,其中rn=1。你不需要订购BYid。不完全是这样,我把问题解释得很透彻。。。但现在终于解决了!这将输出rn=1的所有记录,但不排除rn为1以及rn>1的所有记录。对不起,在这种情况下,我不明白您想要实现什么。。。你的评论中的“m”是什么?解释得很透彻,但现在解决了,所以不用担心,你是说“rn”吗?如果是,则为行数