mysql - 使用sql计算一天中多条记录之间的时间差
问题描述
我想请您帮忙创建一个查询,让我执行以下操作:
我有一个在线商店,我有一个数据库,用于存储每个用户查看过的带有时间戳的产品。我想可视化“产品会话”,我的意思是获取用户观看产品的时间除以一天(以及这一天查看了多少产品)。
示例:
我最近查看的带有用户 ID 的表
我想创建一个查询,它将给我这个输出
| DAY | TIME | PRODUCTS |
----------------------------------
|2018-07-31| 00:00:04 | 2 |
----------------------------------
|2018-08-01| 02:38:56 | 5 |
到目前为止,我只能这样做:
SELECT DATE(`added_timestamp`) AS day, COUNT(*) AS num_products
FROM tb_recently_viewed
WHERE `user_id`= 'bac240e3eefbb7dff0bc03d00f392f0d'
GROUP BY DATE(`added_timestamp`)
ORDER BY day
输出一天看到的产品:
任何帮助将不胜感激。
解决方案
干得好:
select
date(added_timestamp) as day,
count(*) as num_products,
timediff(max(time(added_timestamp)), min(time(added_timestamp))) as time_diff
from tb_recently_viewed
group by date(added_timestamp)
结果:
day num_products time_diff
---------- ------------ ---------
2018-07-31 2 00:00:04
2018-08-01 2 02:38:56
推荐阅读
- terraform - 如何在 Terraform 中引用 for_each 创建的资源
- c++ - 使用(重载)具有相同名称的 setter / getter 对是一种不好的做法吗?[C++]
- css - 包含在 div 中的 1px srcset 的图像占用高度
- ruby-on-rails - 如何进行 Rails 迁移和 Rails 种子
- r - 两个理论上相同的代码不会产生相同的输出
- javascript - 在某些情况下,POST 在 HTML / PHP 中不起作用
- docker - “docker save”和“docker image save”有什么区别?
- r - 将 csv 文件写入远程计算机中的文件夹
- mongodb - Mongo - 将 1 个查询拆分为 N 个查询
- java - 无法反序列化
没有 START_OBJECT 令牌