mysql - 在 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 万行。
理想情况下,结果的格式如下:
我的查询会是什么样子来格式化我想要实现的结果?
解决方案
我认为您只需要一个基本的聚合查询:
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;
推荐阅读
- python - 如何按级别 0 分组并在多索引和级别数据框(熊猫)中进行描述?
- spring-boot - 升级到 Spring Boot 2.1.0.RELEASE 后 Spring Data Rest 链接不正确
- r - R:用数字替换两个数字之间的值
- vectorization - Nim 中的 R 样式逻辑向量运算
- react-native - 垂直居中标签栏图标 - React Native
- python - 迁移 django 模型时出现“事务处于活动状态”错误
- php - $_SERVER['HTTP_REFERER'] 在 IE 上不起作用
- python - Python matplotlib savefig:更改字体大小
- mongodb - MongoDB聚合:每小时平均销售额
- postman - 我们可以在使用 POSTMAN 时添加 TLS 1.2 版吗?