Получение среднего времени в запросе MySQL Workbench - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть таблица в MySQL Workbench, которая имеет несколько столбцов и 11 миллионов строк.

Один из столбцов - это отметка времени в следующем формате:

2014-01-01 00:12:54

Есть еще одинстолбец, по которому я делаю группу.

Мой запрос в настоящее время выглядит примерно так:

SELECT app_type, count(series_id) as 'Num of Series Downloaded' from access_log
WHERE action = 'download' AND org_id != 1
GROUP BY app_type;

, который выдает следующий результат:

enter image description here

Что я хотел бы сделать, так это получить среднее количество загруженных серий (series_id) в месяц, учитывая, что у меня есть столбец времени.Принимая во внимание, что существует 5 лет данных и 11 миллионов строк.

В идеале результат должен быть отформатирован примерно так:

enter image description here

Как мог бы выглядеть мой запрос для форматирования результата, например, того, к чему я стремлюсь?

1 Ответ

0 голосов
/ 09 апреля 2019

Я думаю, вам нужен базовый запрос агрегации:

SELECT DATE_FORMAT(`timestamp`, '%Y-%m') as yyyymm,
       SUM(app_type = 'API') as API,
       SUM(app_type = 'Web') as Web,
       SUM(app_type = 'Excel') as Excel
FROM access_log
WHERE `action` = 'download' AND org_id <> 1
GROUP BY yyyymm;
...