Групповой день и раздел SQL

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

Я действительно смущен о «ВСЕМ».

$em = $this->getEntityManager()->getConnection();

$stmt = $em->prepare("
        SELECT
            COUNT(o.id) AS `all`,
            (
              SELECT COUNT(id) FROM order_panoramic_orders WHERE DAY(created_at) = DAY(NOW()) AND status_id NOT IN (7,9)
            ) AS `day`
        FROM
          order_panoramic_orders as o
        WHERE
         status_id NOT IN (7,9)
        ");

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

Результаты должны быть такими, как:

День: 1 - Итого: 10 - Раздел 1: 3, Раздел 2: 5, Раздел 3: 2

Есть идеи?

По пути;

Секционные и пользовательские таблицы разделены.

Думаю, мне нужно присоединиться к этим двум таблицам.

Первая таблица: заказы Вторая таблица: пользователи Третья таблица: разделы

mysql,sql,

0

Ответов: 1


1

Странный запрос. Ваш запрос должен быть только условной агрегацией. Подзапрос не требуется:

SELECT COUNT(*) AS `all`,
       SUM(DAY(created_at) = DAY(NOW())) as day
FROM order_panoramic_orders o
WHERE status_id NOT IN (7, 9);

Затем вы можете получить разделы, используя ту же идею:

SELECT COUNT(*) AS `all`,
       SUM(DAY(created_at) = DAY(NOW())) as day,
       SUM(section = 1) as section1,
       SUM(section = 2) as section2,
       SUM(section = 3) as section3
FROM order_panoramic_orders o
WHERE status_id NOT IN (7, 9);
MySQL, MS SQL,
Похожие вопросы