Bigquery - 两列内多个值的总和乘积

Posted

技术标签:

【中文标题】Bigquery - 两列内多个值的总和乘积【英文标题】:Bigquery - Sum Product of multiple value within two columns 【发布时间】:2021-12-13 03:57:49 【问题描述】:

我有这个价值

我想计算一个新列,它将添加ticket_units_count和price的乘积,所以它必须是: 5 * 33104.0 + 4 * 23449.0 = 259316

如何在 bigquery 中做到这一点? 我试过这个

SELECT 
SUM(CAST(price AS FLOAT64) * CAST(ticket_units_count AS INT64))
FROM table

但它显示此错误:Bad double value: 33104.0;23449.0 需要您的帮助来指定查询以获得预期结果

【问题讨论】:

请在您的问题中添加可读的示例数据。 【参考方案1】:

考虑以下方法

select *, 
  ( select sum(cast(_count as int64) * cast(_price as float64))
    from unnest(split(ticket_units_count, ';')) _count with offset
    join unnest(split(price, ';')) _price with offset
    using (offset)
  ) as total
from your_table  

     

如果应用于您问题中的样本数据 - 输出是

【讨论】:

它有效,请找到此代码进行复制:---- 输入 AS(选择“c”作为 id,“5;4”作为ticket_units_count,“33104.0;23449;0”作为价格) select *, ( select sum(cast(_count as int64) * cast(_price as float64)) from unnest(split(ticket_units_count, ';')) _count with offset join unnest(split(price, ';')) _price使用 (offset) ) 作为输入的总和

以上是关于Bigquery - 两列内多个值的总和乘积的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 如何获取 JSON 结构中的值的总和?

SQL聚合中同一列内的多个值的不同计数

Big Query (SQL) 将多列转换为行/数组

与两个表 BigQuery 中的 id 关联的所有值的滚动总和

将数组保存到Big Query

BigQuery:除以列中值的总和以找到比率