sql - 将字符串类型的列转换为数组/记录,即嵌套列
问题描述
我正在尝试从我的 bigquery 数据集中的多个表中计算和检索一些指标。我想调用嵌套,sfam
这是我现在无法执行的字符串列,即它可以有值或为空。所以目标是将该列转换为数组/记录……这就是我想到的想法,我不知道如何去做。
product
和cart
由key_web
、dat_log
、univ
、suniv
和fam
分组sfam
。_
数据被分解为称为 的宇宙,univ
该宇宙由称为 的子宇宙组成suniv
。子宇宙包含称为“fam”的家庭,可能有也可能没有称为 的子家庭sfam
。我想调用嵌套prd.sfam
来减少结果列。
这些数据是从谷歌分析收集的,用于深入了解网站流量和用户活动。
我试图获取有关每个访问者的信息和指标,他/她在特定页面上花费的时间,采取的行动等等。结果表为我提供了在这些页面上花费的时间总和,一天的总访问次数总和以及它所属的类别的细分,因此字符串类型的、univ
和列(sfam 可以为 null因为有些子宇宙suniv只有家庭,并没有下降到子家庭级别。suniv
fam
sfam
fam
sfam
dat_log
: 指日期nrb_fp
:产品页面的查看次数tps_fp
:在所述页面上花费的总时间
我尝试了在网上找到的不同方法,但都没有奏效,所以我发布了我的代码和问题,希望能找到指导和解决方案!
一个更简单的查询是:
select
prd.key_web
, dat_log
, prd.nrb_fp
, prd.tps_fp
, prd.univ
, prd.suniv
, prd.fam
, prd.sfam
from product as prd
left join cart as cart
on prd.key_web = cart.key_web
and prd.dat_log = cart.dat_log
and prd.univ = cart.univ
and prd.suniv = cart.suniv
and prd.fam = cart.fam
and prd.sfam = cart.sfam
这是查询文本和图像中最后 6 列的示例结果:
同样,我想获得一列数组,sfam
因为我有所有sfam
偶数空值的字符串值。
我将输出限制为仅最后 6 列,前 3 列是行,key_web
并且dat_log
. 每个fam
都由几个sfam
或没有(null)组成,我希望能够在fam
or上进行嵌套sfam
。
解决方案
我想得到一列数组,
sfam
因为我有所有sfam
偶数的字符串值。
这在 BigQuery 中是不可能的。正如文档所解释的:
目前,BigQuery 对于 NULL 和 ARRAY 有以下两个限制:
如果查询结果包含包含 NULL 元素的 ARRAY,BigQuery 会引发错误,尽管此类 ARRAY 可以在查询中使用。
也就是说,您的结果集不能包含带有NULL
元素的数组。
推荐阅读
- php - 使用 LIKE 在 SELECT mysql 语句中查找数字代码字符串
- java - 将枚举类型作为参数传递
- azure - 我应该如何将后端解决方案链接到 IoT 中心
- wordpress - 无法将 MailChimp 与我的 WordPress 网站集成
- javascript - 附加文本框和按钮
- python - 我可以在 Python 中将字符串中的特定字母大写吗?
- python - 如何解决 ValueError 的问题:无法将字符串转换为浮点数:当我的每一列都有超过 10 个唯一字符值时?
- basic - 基本方言,这是什么语言?
- swiftui - SwiftUI - 取决于元素计数的可调整大小的列表高度
- typescript - Typescript 类型别名让 Intellisense 显示别名,而不是源类型