這是問的問題的延續:select query with priority based on column values 我有一個相同的問題,其中我的結果集(這是一個機場的飛行運動報告)是這樣的:選擇查詢值
sl_no term arr org sta ata arr_pax asrc dep dep_pax dsrc std atd
----- ---- --- ---- --- ----- ----- ----- ----- ---- - ----- ---- ---
01 D TY123 TTY 00:00 00:05 123 USR II 877 26 LDM 00:45 00:50
02 D TY123 TTY 00:00 00:05 55 LDM II 877 26 LDM 00:45 00:50
03 D FY598 TTY 00:00 00:05 123 LDM II 877 32 USR 00:45 00:50
04 D ZX555 TTY 00:00 00:05 223 LDM II 877 55 LDM 00:45 00:50
05 D XX645 TTY 00:00 00:05 16 LDM II 877 55 LDM 00:45 00:50
06 D XX645 TTY 00:00 00:05 16 LDM II 877 65 USR 00:45 00:50
現在,您可以觀察到,前兩行是相同的,但是列'asrc'('USR'和'LDM')下的值相同。同樣,除了列'dsrc'下的值('USR'和'LDM'),第5行和第6行是相同的。
我的目標結果應該只包含其中一個相同的行,如果存在'USR',包含'LDM'的行將被丟棄。如果'USR'不存在並且'LDM'是唯一存在的,那麼將選擇該行。
鏈接問題的第二個答案建議使用分析函數。我試圖做到這一點,我結束了下面的查詢:
的摘錄:
SELECT term,arr,org,sta,ata,arr_pax,asrc,dep,dep_pax,dsrc,std,atd,Max(dep_pax) KEEP (Dense_Rank first ORDER BY apriority) FROM
(
Select .....<joins to build the query>
, CASE dpriority
WHEN 'USR' THEN 1
WHEN 'LDM' THEN 2
END AS dpriority
, CASE dpriority
WHEN 'USR' THEN 1
WHEN 'LDM' THEN 2
END AS dpriority FROM
...... ;
我還是結束了相同的結果與「USR」和「LDM」值兩排設置。任何人都可以指出如何在這裏構建分析功能?
任何其他工作方法也是受歡迎的。 在此先感謝。
也許HAVING子句是你在這裏失蹤: http://docs.oracle.com/javadb/10.8.1.2/ref/rrefsqlj14854.html – selalerer