Войти Регистрация
Data base

114. Два объявления с лучшей конверсией в категории

Лёгкая

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 в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите все верные варианты (одна лишняя отметка допустима). После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
топ-N в группеусловная агрегацияLIMIT BYHAVING

Источник: кейс Авито: ClickHouse для данных о действиях пользователей, Хабр, 2025. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.

Какие запросы вернут по два лучших объявления в каждой категории?

  • LIMIT 2 без BY
  • ORDER BY … LIMIT 2 BY category
  • Без порога по просмотрам
  • row_number() OVER (PARTITION BY category) ≤ 2
  • count() как просмотры