有人能告诉我如何在PostgreSQL中转换以下Oracle SQL语句吗?我不明白…
SELECT
MAX(TKI1.USER_ID)
KEEP(DENSE_RANK LAST ORDER BY TKI1.UPD_DATE NULLS FIRST)
OVER(PARTITION BY TKI1.NUMBER) AS USER_ID
FROM
USER_TABLE TKI1;
您可以使用:
SELECT MAX(CASE WHEN rnk = 1 THEN user_id END) OVER (PARTITION BY NUMBER)
AS user_id
FROM (
SELECT user_id,
NUMBER,
RANK() OVER (PARTITION BY NUMBER ORDER BY UPD_DATE DESC NULLS LAST)
AS rnk
FROM user_table
) t