Подсчет с помощью 2 групповых по (ов) без подзапроса /CTE

#sql #group-by #count #subquery #sql-date-functions

#sql #группировка по #подсчет #подзапрос #sql-функции даты

Вопрос:

— Сколько клиентов размещали заказы каждый месяц?

Таблица: Клиент

введите описание изображения здесь

Желаемый результат:

введите описание изображения здесь

Мой код, который дает желаемый результат:

 with abc as (select concat(year(order_date),'/', month(order_date)) "date",customer_id
from customer
group by 1,2
order by 1)

select date,count(*) "customers_who_ordered"
from abc
group by 1;
  

Мне не нужен подзапрос или запрос CTE. Есть ли способ получить тот же результат в одном запросе?

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

1. Пометьте свой вопрос базой данных, которую вы используете.

Ответ №1:

Вы можете попробовать следующее —

 select concat(year(order_date),'/', month(order_date)) "date",count(distinct customer_id)
from customer
group by concat(year(order_date),'/', month(order_date))