如何计算bigquery中两个一维数组字段的点积?

时间:2019-02-13 17:18:08

标签: sql google-bigquery

也许更多的是标准的sql问题(尽管它可能会以某种方式使用bigquery的一些数组函数),但是想知道如何简洁地计算表的两个(相同大小)向量字段的点积

我在这里的[[]]中查找sql​​的详细信息:

选择[涉及a.vector1和a.vector2的点积公式] 来自

谢谢

1 个答案:

答案 0 :(得分:2)

下面是演示方法的简单示例
对于BigQuery标准SQL

  
#standardSQL
WITH `project.dataset.table` AS (
  SELECT [1,2,3,4,5] vector1, [5,4,3,2,1] vector2
)
SELECT *,
  (SELECT SUM(element1 * element2) 
    FROM t.vector1 element1 WITH OFFSET pos
    JOIN t.vector2 element2 WITH OFFSET pos 
    USING(pos)
  ) dot_prodict
FROM `project.dataset.table` t

有结果

Row vector1 vector2 dot_prodict  
1   1       5       35   
    2       4        
    3       3        
    4       2        
    5       1