繁体   English   中英

Select 基于某列的 MAX 值的不同行

[英]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就像HAVINGWHERE ,除了你可以使用 window 功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM