MySQL Grid: ежедневные продажи против региона

Я хочу сделать запрос MySQL, чтобы получить сетку с продажами по стране или городу изо дня в день:

SELECT      DATE(creacion) as fecha,
SUM(case when order_paid = 'Approved' and info_direccion_pais = 'GB' then 1 else 0 end) as sales_UK,
SUM(case when order_paid = 'Approved' and info_direccion_pais = 'AU' then 1 else 0 end) as sales_AU
FROM        orders
WHERE       DATE(creacion) >= '2015-01-01'
GROUP BY    fecha
ORDER BY    fecha DESC
LIMIT       0, 100

Этот код возвращает структуру так, как я хочу:

fecha aprobadas_uk aprobadas_au
2015-04-30 5 7
2015-04-29 2 9
2015-04-28 12 19
2015-04-27 4 22
2015-04-26 8 25
2015-04-25 1 9
2015-04-24 3 4
2015-04-23 3 11
2015-04-22 5 1

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

Как я могу получить все страны или города одновременно?

0

Решение

Попробуйте это и посмотрите, работает ли это:

SELECT  DATE(creacion) as fecha, info_direccion_pais,
SUM(case when order_paid = 'Approved' then 1 else 0 end) as sales
FROM        orders
WHERE       DATE(creacion) >= '2015-01-01'
GROUP BY    fecha, info_direccion_pais
ORDER BY    fecha DESC, info_direccion_pais
LIMIT       0, 100

Это будет иметь 3 столбца: fecha, info_direccion_pais и sales. Это даст код страны, так что вы можете присоединиться к нему в таблице других стран, чтобы получить название страны. Посмотрите на изменения, которые я внес в SELECTа также GROUP BY статьи. Я не уверен, но вы можете даже избавиться от LIMIT пункт целиком.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]