Ниже приведены примеры для BigQuery Standard SQL
Первый применяется, если ваш столбец представляет собой массив строк, а второй - в случае, если это строка, которая выглядит как массив: o)
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, ['70042', '70055', '70044', '70046'] dspid UNION ALL
SELECT 2 id, ['70042', '70055', '70044', '70046'] dspid
)
SELECT id, dspid
FROM `project.dataset.table`,
UNNEST(dspid) dspid
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 id, '["70042","70055","70044","70046"]' dspid UNION ALL
SELECT 2 id, '["70042","70055","70044","70046"]' dspid
)
SELECT id, dspid
FROM `project.dataset.table`,
UNNEST(SPLIT(REGEXP_REPLACE(dspid, r'[\[\]"]', ''))) dspid
Оба результата ниже результата
Row id dspid
1 1 70042
2 1 70055
3 1 70044
4 1 70046
5 2 70042
6 2 70055
7 2 70044
8 2 70046
Примечание: приведенный ниже фрагмент используется только для того, чтобы имитировать ваши реальные данные / таблицу и просто для тестирования / игры. На самом деле, вы можете удалить его и использовать свой конкретный project.dataset.table
WITH `project.dataset.table` AS (
..............
)
В следующий раз, когда вы зададите вопрос о SO, пожалуйста, предоставьте более подробную информацию о вашем деле и покажите, что вы пробовали, даже если это не помогло вам - это обычно помогает нам лучше понять ваше дело и, следовательно, лучше помочь вам
Обновление
Так, например, если ваша таблица veuhub-185502.AdtechAnalytics.tag_request
, вы должны использовать ниже
#standardSQL
SELECT id, dspid
FROM `veuhub-185502.AdtechAnalytics.tag_request`,
UNNEST(dspid) dspid
или ниже для (на основе ваших комментариев)
#standardSQL
SELECT
DSPID,
adtype,
adtypeWithDevice,
EXTRACT(year FROM request_timestamp) AS year,
EXTRACT(month FROM request_timestamp) AS month,
EXTRACT(day FROM request_timestamp) AS day,
EXTRACT(hour FROM request_timestamp) AS hour,
SUM(1) AS requestcount
FROM `veuhub-185502.AdtechAnalytics.tag_request`,
UNNEST(dspid) dspid
GROUP BY adtype,adTypeWithDevice,DSPID,year,month,day,hour