MySQL запрос для заполнения количества заказов в том же месяце в виде отдельного столбца в каждой строке входной таблицы - PullRequest
1 голос
/ 04 февраля 2020

У меня есть таблица порядка заказов: значения в таблицу

create table orderdetails (order_date date, order_id varchar(1));

insert into orderdetails values 
('2017-01-02','a'), 
('2017-01-31','B'), 
('2017-02-01','c'), 
('2017-09-01','d');

Я попробовал приведенный ниже код, чтобы добиться этого и безуспешно. Пожалуйста, помогите ..

select *, 
case
when month(order_date) = 1 then count(order_id)
when month(order_date) = 2 then count(order_id)
else 1 as num_orders
end
from orderdetails;

1 Ответ

1 голос
/ 04 февраля 2020

Рассмотрим следующее:

SELECT x.*
     , y.total 
  FROM orderdetails x 
  JOIN 
     ( SELECT DATE_FORMAT(order_date,'%Y-%m')yearmonth
            , COUNT(*) total 
         FROM orderdetails 
        GROUP 
           BY yearmonth
     ) y 
    ON y.yearmonth = DATE_FORMAT(x.order_date,'%Y-%m');
...