【发布时间】:2016-06-13 10:07:11
【问题描述】:
SELECT MAX(column1)
FROM table1 B , table2 A, table3 H
WHERE B.unit=A.unit
AND B.value=A.value
AND B.unit=H.unit
AND B.value=H.value
AND A.number=1234
有人可以帮我在内联视图中重组这个查询吗?
示例
Table1
------
Value Unit
001 A1
002 B1
003 C2
002 A1
Table2
--------
Value Unit Number
001 B4 11
002 B1 1234
004 B1 22
TABLE3
-------
VALUE UNIT NUMBER COLUMN1
001 B4 11 555
002 B1 1234 557
002 B1 1234 559
OUTPUT
------
MAX(C0LUMN1)
-----------
559
【问题讨论】:
-
这个问题很不清楚。这个查询有什么问题?你到底想达到什么目的?
-
这可以用内联视图制作吗?像 max 字段将在条件 rownum =1 的情况下重新构造
-
还不清楚。您没有非聚合字段或 group-by 子句,因此无论如何您在结果集中只有一行。编辑问题以显示包含初始数据、您现在获得的内容以及您希望看到的内容(以及原因)的示例。
-
这仍然不能告诉我们你想要什么 - 你在输出中有一行。内联视图或 rownum 过滤器将实现什么?
-
这是一个具有相同数据的示例输入...考虑具有百万行的表...其中 max 将返回 I/O 这可以使用 order by 和内联视图最小化
标签: oracle query-tuning inline-view