0
DENSE_RANK最後爲了我與甲骨文SQL服務器:通過保持
select
max(DW_EXTRACT_DATE) as DW_EXTRACT_DATE,
DW_LOGICAL_DATE as SELECTION_DATE,
max(DW_LOGICAL_DATE) as DW_LOGICAL_DATE,
max(RUNTIME_AUDIT_ID) as RUNTIME_AUDIT_ID,
max(REC_SRC_SYS) as REC_SRC_SYS,
POSITION_ID,
EMPLOYEE_ID,
PRIMARY_POS,
INV_STR_DATE,
max(POS_STOP_DATE) keep (dense_rank last order by INV_STR_DATE) as POSITION_STOP_DATE,
max(CHANGE_REASON) keep (dense_rank last order by INV_STR_DATE) as CHANGE_REASON_CD,
max(ACTUAL_FTE_PERC) keep (dense_rank last order by INV_STR_DATE) as ACTUAL_FTE_PERC
from
EMPLOYEE_POSITION
where
POSITION_ID != 'TERMINATED'
group by
DW_LOGICAL_DATE,
POSITION_ID,
EMPLOYEE_ID,
PRIMARY_POS,
INV_STR_DATE
下面的查詢如何做與SQL Server一樣的嗎?我是一個與甲骨文新的。
我試過以下查詢。
SELECT DW_EXTRACT_DATE,DW_LOGICAL_DATE,RUNTIME_AUDIT_ID,REC_SRC_SYS,REC_SRC_SYS,POSITION_ID,
EMPLOYEE_ID, PRIMARY_POS,INV_STR_DATE,POS_STOP_DATE,
CHANGE_REASON,
ACTUAL_FTE_PERC
FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY POS_STOP_DATE ORDER BY INV_STR_DATE DESC) Corr
FROM EMPLOYEE_POSITION
where POSITION_ID != 'TERMINATED') A WHERE Corr = 1
我在查詢中有三次eep-dense,如何添加它們全部?我應該用什麼來取代X? – 2015-04-06 11:07:35
使用子查詢並在子查詢中放入'first_value()'。他們都在做同樣的事情,所以如果你走這條路,你可以使用一個'row_number()'。 – 2015-04-06 11:32:32