gpt4 book ai didi

google-bigquery - 如何在 Bigquery 中将列数组转换为行

转载 作者:行者123 更新时间:2023-12-03 20:16:48 41 4
gpt4 key购买 nike

我在我的 google bigquery 中有一个如下截图的列

enter image description here

我需要将该列转换为 Bigquery 中的行,如下所示:

70042
70055
70044
70046
70042
70055
70044
70046

请建议我如何获得上述行。

最佳答案

下面是 BigQuery 标准 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 上提问时,请提供有关您的案例的更多详细信息,并展示您尝试过的内容,即使它对您不起作用 - 这通常有助于我们更好地了解您的案例,从而更好地帮助您

Update



因此,例如,如果您的表是 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

关于google-bigquery - 如何在 Bigquery 中将列数组转换为行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52069396/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com