Выберите данные за последние 10 дней - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу реализовать SQL-запрос для гистограммы, который показывает объемы в день за последние 10 дней. Например, у меня есть такая структура таблицы:

CREATE TABLE `payment_transactions` (
  `id` int(11) NOT NULL,
  `amount` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
);

Мне нужно получить пример результата (сгруппированный по дням):

Date       | Amount| Number of transactions per day |
11-11-2018 | 30    | 3                              |
11-12-2018 | 230   | 13                             |

Как я могу реализовать это с помощью MariaDB?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вы можете попробовать ниже

    select date(created_at) as cdate, sum(amount) as amount,count(id) as 
    nooftransaction
    from payment_transactions
    where date(created_at)>=date(now()- interval 10 day) and date(created_at)<date(now())
    group by date(created_at)
0 голосов
/ 06 ноября 2018

Вам просто нужно отрезать часть времени от даты и группы следующим образом:

SELECT DATE(created_at) AS Date, SUM(amount) AS Total_Amount, COUNT(*) AS Num_Transactions
FROM t
GROUP BY DATE(created_at)

Чтобы ограничить результаты последними 10 днями, используйте следующий оператор where:

-- 10 days including today
WHERE created_at >= CURRENT_DATE - INTERVAL 9 DAY
AND   created_at  < CURRENT_DATE + INTERVAL 1 DAY

-- 10 days excluding today
WHERE created_at >= CURRENT_DATE - INTERVAL 10 DAY
AND   created_at  < CURRENT_DATE

-- 10 days from current time
WHERE created_at  > CURRENT_TIMESTAMP - INTERVAL 10 DAY
AND   created_at <= CURRENT_TIMESTAMP
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...