ClickHouse · ClickHouse 26.3.57.12
В аналитической платформе Авито данные о действиях пользователей лежали в ClickHouse. Здесь — просмотры объявления и контакты с продавцом (звонок или сообщение).
Для каждой категории верните два объявления с самой высокой конверсией conv = contacts / views, округлённой до 3 знаков. Объявления меньше чем с 3 просмотрами не учитывайте. При равной конверсии выше то, у кого меньше item_id.
Колонки: category, item_id, views, contacts, conv. Порядок — по category, затем по conv по убыванию, затем по item_id.
В работе: Подборка «Похожие объявления» и разбор, какие карточки в категории продают лучше.
Источник: кейс Авито: ClickHouse для данных о действиях пользователей, Хабр, 2025. Условие пересказано своими словами.
Какие запросы вернут по два лучших объявления в каждой категории?
- LIMIT 2 без BY
- ORDER BY … LIMIT 2 BY category
- Без порога по просмотрам
- row_number() OVER (PARTITION BY category) ≤ 2
- count() как просмотры