Кто такой оптимальный “самый общий объединитель” алгоритм?

Я бы написал так:

select user, product, count(*) as c,
       count(*) * 1.0 / sum(count(*)) over (partition by user) as ratio
from table
group by user, product;
10
задан starblue 16 May 2009 в 09:24
поделиться

1 ответ

Простой алгоритм, который используется на практике (например, в Прологе), является экспоненциальным для патологических случаев.

Существует теоретически более эффективный алгоритм Мартелли и Монтанари (IIRC он линейный), но он намного медленнее для простых случаев, которые встречаются на практике, поэтому он редко используется.

8
ответ дан 4 December 2019 в 00:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: