sql - 如何提取Oracle中每个id用户的前5行?
问题描述
我只有一个表,我想为每个表提取前 5 行ID_USER
。
我执行以下查询:
SELECT
ID_USER as U_ID_USER,
COUNT(ID_USER) as NUM_TIC
FROM
TABLE_USERS
GROUP BY ID_USER
ORDER BY ID_USER
运行时返回以下信息:
U_ID_USER NUM_TIC
16469 34
29012 4
33759 2
然后我想把每个值ID_USER
放在下面的查询中,只提取前 5 行:
SELECT *
FROM(
SELECT
DATE,
ID_USER,
C1,
C2,
C3
FROM
TABLE_USERS
WHERE
ID_USER = '16469'
ORDER BY ID_USER)
WHERE ROWNUM < 6;
例如对于ID_USER
“16469”,运行时返回以下信息:
DATE ID_USER C1 C2 C3
13/12/17 16469 X X X
11/12/17 16469 X X X
07/12/17 16469 X X X
04/12/17 16469 X X X
01/12/17 16469 X X X
我想要的是 PL/SQL 中的自动过程或给我这样的输出的查询:
DATE ID_USER C1 C2 C3
13/12/17 16469 X X X
11/12/17 16469 X X X
07/12/17 16469 X X X
04/12/17 16469 X X X
01/12/17 16469 X X X
25/12/17 29012 X X X
20/12/17 29012 X X X
15/11/17 29012 X X X
10/11/17 29012 X X X
18/12/17 33759 X X X
15/12/17 33759 X X X
是否可以使用 PL/SQL 或查询获得此输出?
解决方案
这可以通过row_number
.
SELECT DATE,ID_USER,C1,C2,C3
FROM (SELECT
T.*
,ROW_NUMBER() OVER(PARTITION BY ID_USER ORDER BY DATECOL DESC) AS RNUM
FROM TABLE_USERS T
) T
WHERE RNUM < 6
推荐阅读
- macos - 如何从命令行在 macOS Catalina 上设置“点击以单击”行为?
- jpa - @Query - 返回原始类型或字符串对象?
- c++ - 用函数包装以返回不同的类型
- laravel - Laravel 列求和
- python - ImportError:libQt5QmlModels.so.5:无法打开共享对象文件:没有这样的文件或目录?
- python - 显示编号列表
- flutter - 如何将 native_pdf_view 集成到我的应用程序中(颤振)?
- scala - 将苹果放在用 Scala 编写的蛇游戏中
- c++ - 从垂直法线找到每个轴的角度
- flutter - Flutter MiBand 服务