合格排名问题

问题描述 投票:0回答:1

尝试使用以下查询删除记录。

DELETE FROM TABLE_1 WHERE NUMB IN 
(
SELECT NUMB FROM TABLE_2 
WHERE FLAG='Y' 
QUALIFY DENSE_RANK() OVER (ORDER BY LOAD_TIMESTAMP DESC )=1
)

看起来像子查询中的 QUALIFY 问题。你能建议替代解决方案吗?

sql rank dense-rank
1个回答
0
投票

您能建议替代解决方案吗?

此查询使用嵌套而不是

QUALIFY

DELETE FROM TABLE_1 WHERE NUMB IN 
(
  SELECT NUMB 
  FROM (
    SELECT NUMB, DENSE_RANK() OVER (ORDER BY LOAD_TIMESTAMP DESC ) AS rn
    FROM TABLE_2 
    WHERE FLAG='Y'
  ) AS s
  WHERE rn = 1
)
© www.soinside.com 2019 - 2024. All rights reserved.