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