我在我的 google bigquery 中有一个如下截图的列
我需要将该列转换为 Bigquery 中的行,如下所示:
70042 70055 70044 70046 70042 70055 70044 70046
请建议我如何获得上述行。
如果您的列是字符串数组,则BigQuery Standard SQL First 的以下示例适用,如果它是看起来像数组的字符串,则第二个适用: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
Run Code Online (Sandbox Code Playgroud)
两者都产生以下结果
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
Run Code Online (Sandbox Code Playgroud)
注意:以下片段仅用于模拟您的真实数据/表,仅供您测试/使用。实际上,您可以删除它并使用您的特定project.dataset.table
WITH `project.dataset.table` AS (
..............
)
Run Code Online (Sandbox Code Playgroud)
下次您在 SO 上提问时,请提供有关您的案例的更多详细信息,并展示您尝试过的内容,即使它对您不起作用 - 这通常有助于我们更好地了解您的案例,从而更好地帮助您
更新
所以,例如,如果你的桌子是veuhub-185502.AdtechAnalytics.tag_request
你应该在下面使用
#standardSQL
SELECT id, dspid
FROM `veuhub-185502.AdtechAnalytics.tag_request`,
UNNEST(dspid) dspid
Run Code Online (Sandbox Code Playgroud)
或以下(根据您的评论)
#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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6232 次 |
最近记录: |