Вычисление продаж по разным категориям на основе данных о транзакциях пользователей — для пользователей, совершивших более 1 транзакции

Вычисление продаж по разным категориям на основе данных о транзакциях пользователей — для пользователей, совершивших более 1 транзакцииПривет,

Входные данные

У меня есть ежедневные данные о транзакциях на уровне пользователя, и я хочу вычислить ежемесячные продажи по разным категориям - агрегирование для пользователей, которые купили только из более чем 1 категории.

Выход -Вычисление продаж по разным категориям на основе данных о транзакциях пользователей — для пользователей, совершивших более 1 транзакции

Может кто-нибудь предложить, как это сделать в sql?

Пожалуйста, формулируйте вопросы SQL с помощью релевантные и минимальные выборочные данные, демонстрирующих ваши требования, и соответствующий ожидаемый результат. Прочтите эту ссылку: Почему я должен предоставлять MCVE для того, что мне кажется очень простым SQL-запросом?

Madhur Bhaiya 09.04.2019 16:57

@MadhurBhaiya, приносим извинения за то, что не можем поделиться соответствующими данными из соображений конфиденциальности. Если бы вы могли поделиться подходом, это тоже было бы полезно.

derek9988 09.04.2019 17:07

Нас не интересуют реальные данные. Пожалуйста, прочитайте ссылку в моем предыдущем комментарии. Это поможет лучше сформулировать вопрос.

Madhur Bhaiya 09.04.2019 17:10

@дени99 . . . Я удалил тег MySQL, предполагая, что Vertica более намеренно.

Gordon Linoff 09.04.2019 17:20
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
4
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хм . . . это, кажется, делает то, что вы описываете:

select date_trunc('month', day), category,
       sum(transaction_amount), count(distinct user_id)
from (select d.*,
             min(category) over (partition by userid, date_trunc('month', day)) as min_category,
             max(category) over (partition by userid, date_trunc('month', day)) as max_category
      from daily d
     ) d
where min_category <> max_category -- at least two categories
group by date_trunc('month', day), category;

Спасибо за ваш ответ. Получение исключения для предложения where здесь. ОШИБКА: агрегаты не разрешены в предложении WHERE

derek9988 09.04.2019 17:32

@дени99 . . . Я исправил опечатку.

Gordon Linoff 09.04.2019 17:33

Другие вопросы по теме