У меня есть таблица Bigquery со следующей структурой:
source | feature | value |
---------------------------
s1 | f1 | HIGH |
---------------------------
s2 | f1 | LOW |
---------------------------
s2 | f2 | MEDIUM |
.
.
.
---------------------------
s7000 | f1000 | HIGH |
Я хотел бы посчитать, сколько источников появляется для всех перестановок функций и значений. Пример результирующего набора:
feature | feature | value | value | count
-----------------------------------------------
f1 | f2 | HIGH | HIGH | 7
-----------------------------------------------
f1 | f2 | LOW | HIGH | 211
.
.
.
-----------------------------------------------
f7000 | f1000 | HIGH |MEDIUM | 123
Это мой sql запрос:
select m1.feature as f1, m2.feature as f2, m1.value as v1, m2.value as v2, count(*)
from matrix m1 inner join matrix m2 on m1.source=m2.source
group by m1.feature, m2.feature, m1.value, m2.value
В этом случае проблема заключается в очень низкой производительности больших запросов. Таблица матрицы не такая большая, около 7 000 000 записей. Я остановил выполнение запроса через 7 минут ...
Не могли бы вы помочь мне повысить производительность моего запроса?