arrayResize(arrayReverseSort((x, y) -> y,
arrayMap(x->tuple(x, countEqual(groupArrayArray(categories), x)), groupUniqArrayArray(categories)),
arrayMap(x->tuple(x, countEqual(groupArrayArray(categories), x)), groupUniqArrayArray(categories)). 2
), 7)).1 as TopCategories
from request_log
where total != 0
and timestamp >= subtractDays(now(), 30)
group by request_string;
categories это массив интов. В одной строчке от 0 до 40 элементов массива.
Кол-во строк - 171млн.
Проблема: Сортировка массива работает долго.
Этим запросом я хотел взять 7 самых часто встречающихся элементов масива categories.
Есть ли способ сделать это проще?
А что-то типа topKArray(7)(categories) не работает?
Обсуждают сегодня