Как посчитать уникальные элементы в столбце и передавать их в другие столбы по условию
Знатоки, просьба помочь с решением задачи.
Есть 3 столбца: дата, заказы и статус заказа. Заказы иногда повторяются, для каждого из них есть 5 разных статусов в отдельном столбце. Нужно создать таблицу: дата, заказ создан (для заказов со статусом placed, заказ отменен (для заказов со статусом cancel). Заказы не должны повторяться/
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
SELECT date,
SUM(IF(status = 'placed', 1, 0)) AS placed_count,
SUM(IF(status = 'cancel', 1, 0)) AS canceled_count
FROM source_table
GROUP BY date
ORDER BY date
В синтаксисе clickhouse не уверен, но идея именно такая.
мне же нужно посчитать количество уникальных значений в столбце order_id
Попробуйте, съест ли clickhouse такую конструкцию:
SELECT date,
COUNT(DISTINCT IF(status = 'placed', order_id, NULL)) AS placed_unique_count,
COUNT(DISTINCT IF(status = 'cancel', order_id, NULL)) AS canceled_unique_count
FROM source_table
GROUP BY date
ORDER BY date
