BIGQUERY 中的 COUNT() 和 GROUP BY

Posted

技术标签:

【中文标题】BIGQUERY 中的 COUNT() 和 GROUP BY【英文标题】:COUNT() AND GROUP BY in BIGQUERY 【发布时间】:2021-09-30 12:52:31 【问题描述】:

我尝试在 BigQuery 中使用 UNNEST,但输出如下所示

------------------------------------------
|Row |    Name         |   user_id       |
------------------------------------------
| 1  |    STAY         |      1          |
-    -------------------
|    |LOVE YOURSELF    |                 |
-    -------------------
|    |  GREEN BOOK     |                 |
-    -------------------
|    |CRAZY IN LOVE    |                 |
------------------------------------------

我的查询是:

select user_id,
       array(select json_extract_scalar(x, '$.Name') from 
       unnest(json_extract_array(json_col, '$.info.music') x) NAME
from data 

我希望表格如下,因为我想计算听每首歌曲的用户数量。有没有人有什么建议?我真的可以使用上表来计算吗?

------------------------------------------
|Row |    Name         |   user_id       |
------------------------------------------
| 1  |    STAY         |      1          |
------------------------------------------
| 2  |LOVE YOURSELF    |      1          |
------------------------------------------
| 3  |  GREEN BOOK     |      1          |
------------------------------------------
| 4  |CRAZY IN LOVE    |      1          |
------------------------------------------

【问题讨论】:

向我们展示您的查询。 select user_id, array(select json_extract_scalar(x, '$.Name') from unnest(json_extract_array(json_col, '$.info.music') x) NAME from data 【参考方案1】:

考虑下面

select name, user_id from (
  select user_id,
    array(select json_extract_scalar(x, '$.Name') from 
    unnest(json_extract_array(json_col, '$.info.music')) x) NAME
  from data
) t, t.name name            

有输出

【讨论】:

以上是关于BIGQUERY 中的 COUNT() 和 GROUP BY的主要内容,如果未能解决你的问题,请参考以下文章

Bigquery ORDER BY (count )

修复 BigQuery 中的“超出资源”并使其运行更快

如何将平面/关系表转换为 BigQuery 中的键/值对表?

Google Analytics 与 BigQuery 中的会话 - 差异

Google Data Studio (BigQuery) - 创建过滤器以按最新时间选择

BigQuery 避免多个子查询