Большой запрос | Развертывание после выявления повторяющихся строк - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь отключить line_items в своей таблице. Однако мне нужно удалить дубликаты из нашей таблицы, и это сбрасывает то, что обычно должно работать.

Это запрос, который я использую для удаления дубликатов:

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

Однако, когда я пытаюсь unnest line_items в этом запросе, он больше не может разбивать по идентификатору

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

Есть идеи, как я могу удалить дубликаты, а также unnesting line_items? мои данные выглядят так: enter image description here

При удалении дубликатов это выглядит так: enter image description here

1 Ответ

2 голосов
/ 17 июня 2020

Вы можете сначала выполнить дедупликацию, а затем удалить результат - как в примере ниже

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...