大查询|识别重复行后不需要

8oomwypt  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(299)

我正在尝试取消我表中的行项目。但是,我必须从我们的表中删除重复项,这会使正常工作的内容失效。
这是我用来消除重复的查询:

SELECT *, ROW_NUMBER() OVER(PARTITION BY id) AS instance
       FROM `shopify.orders` )
      -- identify duplicate rows
   where instance = 1

但是,当我尝试取消此查询中的行项目时,它将无法再按id进行分区

SELECT *, ROW_NUMBER() OVER(PARTITION BY id) AS instance
       FROM `shopify.orders`, unnest(line_items) as items )
      -- identify duplicate rows
   where instance = 1

有没有办法在取消行项目测试的同时消除重复项?
在不删除重复项的情况下,我的数据如下所示:

删除重复项时,其外观如下所示:

noj0wjuj

noj0wjuj1#

您可以先执行重复数据消除,然后再取消最新结果—如下例所示

SELECT * EXCEPT(instance, line_items) FROM (
  SELECT *, ROW_NUMBER() OVER(PARTITION BY id) AS instance
  FROM `shopify.orders` 
), UNNEST(line_items) as item
   -- identify duplicate rows
WHERE instance = 1

相关问题