BigQuery: Как извлечь только определенное поле из ПОВТОРНЫХ записей в качестве другого ПОВТОРНОГО поля - PullRequest
0 голосов
/ 05 ноября 2018

Вот пример таблицы в BigQuery:

WITH test AS (
  SELECT
    [ 
      STRUCT("Rudisha" as name, 123 as id),
      STRUCT("Murphy" as name, 124 as id),
      STRUCT("Bosse" as name, 125 as id),
      STRUCT("Rotich" as name,  126 as id)
    ] AS data

    UNION

    [
      STRUCT("Lewandowski" as name, 127 as id),
      STRUCT("Kipketer" as name, 128 as id),
      STRUCT("Berian" as name, 129 as id)
    ] AS data
)

Здесь я хочу извлечь поля 'id' в поле записи ('data') в качестве повторяемого поля. Таким образом, количество строк останется неизменным, но только с полем идентификаторов, которое имеет повторяющийся тип:

ids: [123, 124, 125, 126]
ids: [127, 128, 129]

Как я могу это сделать? Спасибо!

1 Ответ

0 голосов
/ 05 ноября 2018

Ниже для BigQuery Standard SQL

#standardSQL
WITH test AS (
  SELECT
    [ 
      STRUCT("Rudisha" AS name, 123 AS id),
      STRUCT("Murphy" AS name, 124 AS id),
      STRUCT("Bosse" AS name, 125 AS id),
      STRUCT("Rotich" AS name,  126 AS id)
    ] AS data
    UNION ALL SELECT
    [
      STRUCT("Lewandowski" AS name, 127 AS id),
      STRUCT("Kipketer" AS name, 128 AS id),
      STRUCT("Berian" AS name, 129 AS id)
    ] AS data
)
SELECT ARRAY(SELECT id FROM UNNEST(data)) ids
FROM test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...