gpt4 book ai didi

google-cloud-platform - 大查询 PIVOT 运算符,当列数据类型为 STRING 且我无法应用聚合函数时如何使其工作

转载 作者:行者123 更新时间:2023-12-01 23:22:52 24 4
gpt4 key购买 nike

我试图理解和处理大查询新枢轴运算符。来自另一篇文章How to Pivot table in BigQuery ,我明白它是如何工作的。谷歌文档中的示例提到了有关具有产品、销售额和季度的数据以及我们如何使用下面的查询获取透视数据。

SELECT * FROM
(SELECT * FROM Produce)
PIVOT(SUM(sales) FOR quarter IN ('Q1', 'Q2', 'Q3', 'Q4'))

+---------+----+----+----+----+
| product | Q1 | Q2 | Q3 | Q4 |
+---------+----+----+----+----+
| Apple | 77 | 0 | 25 | 2 |
| Kale | 51 | 23 | 45 | 3 |
+---------+----+----+----+----+

我想知道如果我必须使用 PIVOT 运算符对下面的数据示例的数据进行 PIVOT,其中销售数据是 STRING 列并且具有以下数据怎么办。这只是一个例子。我不能在这里提供实时数据作为其敏感数据。

+---------+-------+---------+
| product | sales | quarter |
+---------+-------+---------+
| Kale | good | Q1 |
| Kale | bad | Q2 |
| Kale | good | Q3 |
| Kale | bad | Q4 |
| Apple | bad | Q1 |
| Apple | good | Q2 |
| Apple | bad | Q3 |
| Apple | good | Q4 |
+---------+-------+---------+

输出应该如下所示

+---------+------+-----+-----+----+
| product | Q1 | Q2 | Q3 | Q4 |
+---------+------+-----+-----+----+
| Apple | bad | good| bad | good|
| Kale | good | bad | good| bad |
+---------+------+-----+-----+-----+

在这种情况下,sum 将不起作用,转换也不起作用。在这种情况下我们应该如何使用 PIVOT 运算符?

最佳答案

考虑下面

SELECT * FROM
(SELECT * FROM Produce)
PIVOT(STRING_AGG(sales) FOR quarter IN ('Q1', 'Q2', 'Q3', 'Q4'))

关于google-cloud-platform - 大查询 PIVOT 运算符,当列数据类型为 STRING 且我无法应用聚合函数时如何使其工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67715555/

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