我在 BigQuery 中构建了一个动态数据透视表,它可以满足我的需要,但有一个例外。
最终目标是还获得补充列中每行项目总数的总和,该补充列不属于传递给数据透视调用的动态列集的一部分。
我尝试过使用窗口函数和分区,但没有成功。
有什么想法吗?
下面是一小段数据摘录
Product,agent,qty
Apple,Jon,10
Banana,Jon,5
Apple,Mark,20
即使我可以在内部查询中对每个代理的总数进行求和,我也无法弄清楚如何在 PIVOT IN 中公开。 到目前为止我尝试过的所有内容都仅返回 1,作为单行项目,但不是太阳(例如 Jon、15 和 Mark 20)
有什么想法吗?
正如 @Andrea Moro 和 @samuel 在上面的评论中提到的,您可以利用 CTE,这些
WITH
语句中的每个表都可以被寻址。您可以使用 PIVOT
创建一个 CTE 表,并使用该表来处理窗口函数。
为了获得所需嵌套的预期结果,一个可能的解决方案可能是您可以使用
group by
,在动态列 regexp_ 之间的末尾用不必要的字符替换或用反引号替换以使其成为列。
将答案发布为社区 wiki,以造福于将来可能遇到此用例的社区。请随意编辑此答案以获取更多信息。