Как рассчитать скалярное произведение двух полей 1-го массива в bigquery? - PullRequest
0 голосов
/ 13 февраля 2019

Возможно, это больше стандартный вопрос sql (хотя он может каким-то образом использовать некоторые функции массива bigquery), но интересно, как кратко рассчитать произведение точек двух (одинаковых по размеру) векторных полей таблицы

Я ищу, что подробности для SQL в "[]" здесь:

Выберите [точечная формула продукта с участием a.vector1 и a.vector2] из

спасибо

1 Ответ

0 голосов
/ 13 февраля 2019

Ниже приведен простой пример для демонстрации подхода
Для BigQuery Standard 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        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...