首页 > 解决方案 > 使用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

输出一天看到的产品:

在此处输入图像描述

任何帮助将不胜感激。

标签: mysqlsql

解决方案


干得好:

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                 

推荐阅读