首页 > 解决方案 > 在 mySQL 工作台查询中获取平均时间

问题描述

我在 mySQL 工作台中有一个表,它有几列和 1100 万行。

其中一列是时间戳,格式如下:

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;

这会产生以下结果:

在此处输入图像描述

鉴于我有一个时间列,我想要做的是每月平均下载系列数(series_id)。请记住,有 5 年的数据和 1100 万行。

理想情况下,结果的格式如下:

在此处输入图像描述

我的查询会是什么样子来格式化我想要实现的结果?

标签: mysqlsqlmysql-workbench

解决方案


我认为您只需要一个基本的聚合查询:

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;

推荐阅读