sql - 甲骨文 SQL : Show n rows for each id

标签 sql oracle plsql top-n

我有一个包含 2 列的表,ID 和 URLS,每个 ID 都有几个 URLS。我只想提取每个 ID 最多 5 个 URLS。我如何在 Oracle SQL 中执行此操作?

最佳答案

试试这个,

SELECT ID, URL
FROM
    (
        SELECT ID, URL,
               ROW_NUMBER() OVER (PARTITION BY ID ORDER BY URL DESC) RN
        FROM   tableName
    ) a
WHERE RN <= 5

SQLFiddle Demo

关于sql - 甲骨文 SQL : Show n rows for each id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12634058/

相关文章:

sql - oracle中的错误/异常处理

Oracle 的 MySQL 等效 session 变量

oracle - 执行前在 Oracle 中测试 native 动态 SQL

mysql - SQL查询触发器哪里出错?

php - 一行与多列 mySQL 表中所有行的点积

c# - 使用 C# 从 Oracle DB 返回 Int 值

sql - 将涉及多个表的左外连接从 Informix 重写为 Oracle

sql - 是否可以在 SELECT 语句中将每个属性的多个值列在各自的行中?

带条件的 SQL 查询计数

mysql - 使用csv从oracle导入到mysql