【问题标题】:BigQuery: Query to GroupBy Array ColumnBigQuery:查询到 GroupBy 数组列
【发布时间】:2020-01-25 17:47:39
【问题描述】:

我在 BigQuery 表中有 (2) 列:
1。网址
2。标签

URL 是单个值,TAGS 是数组(示例如下):

| 网址   &nbsp| 标签
1      | x.com |驴
|驴
|生活
|这里


如何在 BigQuery 中按 TAGS 数组进行分组?

让以下查询工作的诀窍是什么?

SELECT TAGS FROM `URL_TAGS_TABLE` 
group by unnest(TAGS)

我已尝试通过TO_JSON_STRING 分组,但它没有给我想要的结果

我希望看到以下输出
x.com |驴 |数 2
x.com |生活 |计数 1
x.com |这里 |计数 1

【问题讨论】:

  • 给定样本行,预期输出是多少?
  • 我对预期输出的问题进行了编辑

标签: google-bigquery


【解决方案1】:

以下是 BigQuery 标准 SQL

#standardSQL
WITH `project.dataset.table` AS (
   SELECT 'x.com' url, ['donkey','donkey','lives','here'] tags UNION ALL
   SELECT 'y.com' url, ['abc','xyz','xyz','xyz'] tags 
)
SELECT url, tag, COUNT(1) AS `count`
FROM `project.dataset.table`, UNNEST(tags) tag
GROUP BY url, tag   

结果

Row url     tag     count    
1   x.com   donkey  2    
2   x.com   lives   1    
3   x.com   here    1    
4   y.com   abc     1    
5   y.com   xyz     3    

【讨论】:

  • @MachineLearning - 很棒。考虑对有帮助的答案进行投票。这在 SO 上同样重要!
猜你喜欢
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 2021-10-10
相关资源
最近更新 更多