Я хочу, чтобы только тот, кто покупал 2 или более раз в месяц, называл только это имя клиента

#mysql #oracle

Вопрос:

 User_ID Product_id Date Quantity U1 10 16-11-2021 2 U2 20 16-11-2021 1 U3 30 17-11-2021 4 U1 40 18-11-2021 2 U4 10 19-11-2021 1 U2 30 20-11-2021 10  

Комментарии:

1. Пожалуйста, продемонстрируйте некоторые усилия, включив свой текущий запрос.

2. ГДЕ ГРУППИРОВАТЬ ПО ИМЕТЬ КОЛИЧЕСТВО

3. MySQL или Oracle? Это два совершенно разных продукта СУБД

Ответ №1:

В вашей таблице нет имени клиента, поэтому выполнить это требование невозможно.

Предполагая, что у вас есть customers таблица со name столбцом (о котором вы не упомянули), вам нужно:

  1. JOIN покупки и customers таблицы вместе в отношении их первичного/внешнего ключа.
  2. GROUP BY Date столбец усечен до начала месяца и первичного ключа для клиента, поэтому у вас есть наборы группировок для каждого клиента на каждый месяц.
  3. Отфильтруйте группы, чтобы найти только те группы HAVING a COUNT , число строк которых больше или равно 2.
  4. SELECT клиента name (либо путем поиска с помощью функции агрегирования, например MAX , внутри группы, либо путем добавления name столбца в GROUP BY предложение).