как сравнить функцию LAG в mysql - PullRequest
0 голосов
/ 25 марта 2020

У меня сложная проблема в mysql.

У меня есть какая-то таблица в моей базе данных.

примеры документов (это всего лишь простой пример, реальные данные - это так много таблиц, что мне нужно присоединиться)

таблица "торговец"

id       name
1        arief
2        john
3        chena

таблица "транзакция"

id       product_id        price       merchant_id        date
1        1                 20000       2                  2020-02-01
2        5                 25000       1                  2020-02-01
3        2                 10000       3                  2020-02-02
4        2                 10000       2                  2020-02-02
5        3                 5000        2                  2020-02-02
5        2                 10000       2                  2020-02-03
6        3                 5000        3                  2020-02-04

Я хочу знать информация о транзакциях продавцов ежедневно «до» и «после» для сравнения

, как показано ниже

name_merchant    sumtrx_20-02-01     sumtrx_20-02-02      sumtrx_20-02-03      sumtrx_20-02-04
arief            1                   0                    0                    0
john             1                   2                    1                    0
chena            0                   1                    0                    1

Я пытался с этим запросом

select m.name, count(trx.id, trx.date = '2020-02-01') as sumtrx_20-02-01, count(trx.id, trx.date = '2020-02-02') as sumtrx_20-02-02, count(trx.id, trx.date = '2020-02-03') as sumtrx_20-02-03, count(trx.id, trx.date = '2020-02-04') as sumtrx_20-02-04 from merchant as m join transaction as trx on m.id = trx.merchant_id
group by m.name

, но этот запрос не работал

1 Ответ

1 голос
/ 25 марта 2020

Вы можете использовать sum() вместо count().

SELECT m.name,
       sum(trx.date = '2020-02-01') `sumtrx_20-02-01`,
       ...
       sum(trx.date = '2020-02-04') `sumtrx_20-02-04`
       FROM merchant m
            INNER JOIN transaction trx
                       ON m.id = trx.merchant_id
       GROUP BY m.name;

И вам также необходимо заключить идентификаторы, здесь псевдонимы столбцов, в обратные метки, если вы используете в них специальные символы, такие как - , Или избегайте использования в них специальных символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...