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

use*_*489 1 sql google-bigquery

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

我正在寻找“[]”中sql的详细信息:

从a中选择[涉及a.向量1和a.向量2的点积公式]

谢谢

Mik*_*ant 6

下面是演示
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
Run Code Online (Sandbox Code Playgroud)

有结果

Row vector1 vector2 dot_prodict  
1   1       5       35   
    2       4        
    3       3        
    4       2        
    5       1        
Run Code Online (Sandbox Code Playgroud)