[英]Select distinct rows based on MAX value of a certain column
我正在使用 Teradata SQL 助手检索结果,需要帮助删除一些数据。 我只想返回基于 PROD_ID 具有最大 VRSN_ID 的结果。
我在代码中尝试了类似的方法,但没有按预期工作:
FROM( SELECT *, ROW_NUMBER() OVER ( PARTITION BY PROD_ID ORDER BY VRSN_ID DESC) AS ROWNUM FROM tblDATA)
当前结果:
CMPNY_CD VRSN_ID PROD_ID ABC 1 33303115 ABC 1 33303115 ABC 1 33303115 ABC 2 33303115 ABC 4 32632795 ABC 2 32632795
期望的结果:
CMPNY_CD VRSN_ID PROD_ID ABC 2 33303115 ABC 4 32632795
使用qualify
:
SELECT *
FROM tblDATA
QUALIFY ROW_NUMBER() OVER (PARTITION BY PROD_ID ORDER BY VRSN_ID DESC) = 1
QUALIFY
就像HAVING
或WHERE
,除了你可以使用 window 功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.