我有以下表甲骨文查询优化
主表
id
----
1x
2x
....
分配表
id | type_id | assign_id
-----------------------------
1x | 2 | 554
1x | 3 | 664
2x | 2 | 919
2x | 4 | 514
类型表
type_id | create_date
----------------------
1 | 01/01/2009
2 | 01/01/2009
3 | 03/01/2009
4 | 04/01/2009
我需要查询,以输出,怎么是这样的
id | max create_date type_id | assign_id
----------------------------------------------
1x | 3 | 664
2x | 4 | 514
我现在正在做这样的事情来获得结果,但我敢肯定有一个更好的方法来做到这一点。
Q1
---
CREATE TABLE tmp_table as
SELECT m.id, max(t.create_date)
FROM master m, assignment a, type t
WHERE m.id=a.id
and a.type_id=t.type_id
GROUP BY m.id
Q2
--
SELECT tmp.id, a.type_id, a.assign_id
from tmp_table tmp, assignment a, type t
WHERE tmp.create_date=t.create_date
and t.type_id=a.type_id
感谢所有帮助
谢谢jeffery。 我从来没有听说过first_value和over命令。 – AlteredConcept 2009-07-22 14:43:46
查看“Oracle分析功能” - 它们功能非常强大:)推荐阅读:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions001.htm#i81407 – 2009-07-22 14:45:47