【发布时间】:2020-10-12 03:23:27
【问题描述】:
我需要编写一个存储过程或 SQL 语句,需要为 Oracle 数据库运行大约 1M 条记录。这应该根据定义的优先级获取数据。
1 为最高优先级,4 为最低优先级。
当使用客户 ID 对记录进行分组时,它应该只选择根据源名称具有最高优先级的记录,否则移动到该组中的下一个源以获得优先级。
我通过使用 LISTAGG 使用老式方法,然后检查 Source name = A 的值,然后获取所有数据。
有没有更好的方法来提取信息。
【问题讨论】:
-
“只选择最高优先级的记录”。那么,
1是最高优先级还是4?看看你的输出,我猜1但我真的不应该猜,你应该向我解释你的规则。 -
不管怎样,这个网站已经有很多类似的问题了:请扫描
[oracle]+[greatest-n-per-group]上的一些帖子,了解如何解决您的问题。
标签: sql oracle oracle11g oracle-sqldeveloper