[英]Dense_rank first Oracle to Postgresql convert
我正在嘗試將以下Oracle查詢轉換為Postgresql。 我可以轉換其余的塊,問題是我不知道如何轉換此塊:
SELECT ai.uid
,max(ai.OWNER) KEEP (
dense_rank first ORDER BY ai.AGENT_ID DESC
) AS OWNER
,max(ai.EMPLOYEE_KEY) KEEP (
dense_rank first ORDER BY ai.AGENT_ID DESC
) AS EMPLOYEE_KEY
,max(ai.MANAGER_LOGIN) KEEP (
dense_rank first ORDER BY ai.AGENT_ID DESC
) AS MANAGER
,max(ai.CALL_CENTER_NAME) KEEP (
dense_rank first ORDER BY ai.AGENT_ID DESC
) AS CALL_CENTER_NAME
,max(ai.CITY) KEEP (
dense_rank first ORDER BY ai.AGENT_ID DESC
) AS CITY
FROM agent_info ai
WHERE translate(ai.UID, 'X0123456789', 'X') IS NULL
GROUP BY ai.UID
我認為你可以將其轉換為包含一個單DENSE_RANK()
並做了MAX
所有的第一記錄。
SELECT UID,
MAX(OWNER),
MAX(EMPLOYEE_KEY),
MAX(MANAGER),
MAX(CALL_CENTER_NAME),
MAX(CITY)
FROM (SELECT ai.UID,
ai.OWNER AS OWNER,
ai.EMPLOYEE_KEY AS EMPLOYEE_KEY,
ai.MANAGER_LOGIN AS MANAGER,
ai.CALL_CENTER_NAME AS CALL_CENTER_NAME,
ai.CITY AS CITY,
DENSE_RANK () OVER (PARTITION BY ai.UID ORDER BY ai.AGENT_ID DESC) rnk
FROM agent_info ai
WHERE TRANSLATE (ai.UID, 'X0123456789', 'X') IS NULL)
WHERE rnk = 1
GROUP BY UID;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.