我有以下表甲骨文查詢優化
主表
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