Sql 避免表中特定列的重复记录

Sql 避免表中特定列的重复记录,sql,google-bigquery,Sql,Google Bigquery,我有一个如图所示的表格。在数字列中,值出现了不止一次(例如63出现了两次)。我只想保留一个值。请查看我的代码: 从t1中删除,其中 (SELECT *,row_number() OVER ( PARTITION BY Number ORDER BY Date) as rn from t1 where rn > 1) 它显示了错误。谁能帮忙吗 按划分的决定行号的重复方式

我有一个如图所示的表格。在数字列中,值出现了不止一次(例如63出现了两次)。我只想保留一个值。请查看我的代码: 从t1中删除,其中

  (SELECT *,row_number() OVER (          
          PARTITION BY 
            Number
          ORDER BY 
            Date) as rn from t1  where   rn > 1)
它显示了错误。谁能帮忙吗


按划分的
决定行号的重复方式。行号由
键为每组
分区分配。所以,你可以得到副本

如果您希望在所有行上都有一个唯一的行号,只需省略
分区by

select t1.*
from (select t1.*,
            row_number() over (order by date) as rn        
      from t1 
     ) t1
where rn > 1

如果您只想保留一个值,rn=1而不是“>1”

主查询未访问由行号()创建的列,为了启用该值,您可以创建一个快速子查询并使用所需的筛选器

SELECT *
FROM
(
SELECT *,
row_number() OVER (PARTITION BY Number ORDER BY Date) as rn 
FROM t1 ) T
where rn = 1;

嗨,戈登,上面写着:未识别的名字:rn at[5:7]。你能帮忙吗?@nrad
rn
在子查询中定义。已经定义好了。谢谢dsk。现在天气很好。只是想知道这里的T是什么。这是表的引用,而不是完整的表名,您可以同样使用T列的名称