Я пытаюсь найти строки с повторяющимися полями в массиве структур в таблице Google BigQuery с использованием нового стандартного SQL. Данные в таблице (упрощенно), где каждая строка выглядит как это:Работа с структурами в массивах для нового стандарта BigQuery SQL
{
"Session": "abc123",
"Information" [
{
"Identifier": "e8d971a4-ef33-4ea1-8627-f1213e4c67dc"
},
{
"Identifier": "1c62813f-7ec4-4968-b18b-d1eb8f4d9d26"
},
{
"Identifier": "e8d971a4-ef33-4ea1-8627-f1213e4c67dc"
}
]
}
Моя конечная цель, чтобы отобразить строки, имеющие Information
объекты с повторяющимися Identifier
текущей стоимости. Тем не менее, большинство запросов я пытаюсь получить сообщение об ошибке следующего вида:
Cannot access field Identifier on a value with type ARRAY<STRUCT<Identifier STRING>>
Есть ли способ работы с данными внутри STRUCT
внутри ARRAY
?
Вот моя первая попытка запроса:
SELECT
Session,
Information
FROM
`events.myevents`
WHERE
COUNT(DISTINCT Information.Identifier) != ARRAY_LENGTH(Information.Identifier)
LIMIT
1000
И еще с использованием подзапроса:
SELECT
Session,
Information
FROM (
SELECT
Session,
Information,
COUNT(DISTINCT Information.Identifier) AS info_count_distinct,
ARRAY_LENGTH(Information) AS info_count
FROM
`events.myevents`
WHERE
COUNT(DISTINCT Information.Identifier) != ARRAY_LENGTH(Information.Identifier)
LIMIT
1000)
WHERE
info_count != info_count_distinct
представить запрос (даже если он erroring), чтобы мы могли начать что-то! –
Несомненно! Отредактировал вопрос, чтобы добавить две попытки, которые я сделал. – Aaron
У вас есть шанс проверить/попробовать свой ответ? –