sql-以固定的分隔符间隔解析字段和数字总和

lvjbypge  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(330)

我请求你的帮助,以解决超出我目前技能范围的问题。。。
我正在使用googlebigquery来存储关于我的网站的分析数据,为了计算收入,我有一个相当困难的查询来构建。
我们有字段%product%,格式如下:

;%productID%;%productQuantity%;%productRevenue%;;

如果购买了多个产品,则不同的产品数据将用“,”分隔,可以给出:

;12345678;1;49.99;;,;45678912;1;54.99;;
;45678912;2;59.98;;,;14521452;2;139.98;;,;12345678;2;19.98;;
;14521452;1;54.99;;

计算收入的唯一方法是将行中所有不同的%productrevenue%相加,并将其存储到列中。
我不知道如何只使用sql查询。。。也许用正则表达式?你知道吗?我想用这些信息创建一个视图,以便轻松地将数据拉入powerbi。但也许我应该直接在pbi里和m一起处理?
谢谢,
亚历克斯

iq0todco

iq0todco1#

下面是bigquery标准sql


# standardSQL

SELECT 
  SPLIT(i, ';')[OFFSET(1)] productID,
  SUM(CAST(SPLIT(i, ';')[OFFSET(2)] AS INT64)) productQuantity,
  SUM(CAST(SPLIT(i, ';')[OFFSET(3)] AS FLOAT64)) productRevenue
FROM `project.dataset.table`,
UNNEST(SPLIT(product)) i
GROUP BY productID

如果要应用到问题输出的样本数据

Row productID   productQuantity productRevenue   
1   12345678    3               69.97    
2   45678912    3               114.97   
3   14521452    3               194.97

相关问题