这是问的问题的延续: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