我在Teradata中有一个看起来像这样的表
ID | Date | Values
------------------------
abc | 1Jan2015 | 1
abc | 1Dec2015 | 0
def | 2Feb2015 | 0
def | 2Jul2015 | 0
我想写一段只保留每个ID最早日期的SQL。所以我想要的结果是
ID | Date | Values
------------------------
abc | 1Jan2015 | 1
def | 2Feb2015 | 0
我知道有前n种语法,但是它似乎只能在整个表上工作,而不能在组内工作。
基本上,我该如何在小组中取得前n名?
可以使用ROW_NUMBER轻松重写TOP:
select *
from tab
qualify
row_number() over (partition by id order by date) = 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句