不同行之间的 MySQL 时间作为聚合

标签 mysql sql database date

这是我的第一篇文章,如有格式错误,请多多包涵。

我需要找出大量用户的每行数据之间的时间,然后取这些时间的平均值作为时间的函数。我知道如何做后一部分,我只是不知道如何找到行之间的时间差异。

例如,我可以很容易地生成这个输出(按顺序为所有用户生成,仅以“John”为例):

用户下单时间 约翰福音 13 2013-10-31 22:35:19 约翰福音 12 2013-10-18 23:16:50 约翰 11 2012-12-07 00:38:34 约翰 10 2012-06-10 02:19:14 约翰 9 2010-07-02 00:55:54 约翰 8 2009-12-20 23:43:41 约翰 7 2009-12-20 01:14:32 约翰福音 6 2009-12-18 15:12:40 约翰 5 2009-12-13 00:38:38 约翰福音 4 2009-12-12 16:00:13 约翰福音 3 2009-12-12 14:50:18 约翰福音 2 2009-12-11 18:41:15 约翰 1 2009-12-04 03:12:06

但是,我需要了解如何创建这个:

用户下单时间timeDiff 约翰 13 2013-10-31 22:35:19 13 约翰 12 2013-10-18 23:16:50 300 约翰 11 2012-12-07 00:38:34 170 约翰 10 2012-06-10 02:19:14 ... 约翰 9 2010-07-02 00:55:54 ... 约翰 8 2009-12-20 23:43:41 ... 约翰 7 2009-12-20 01:14:32 ... 约翰福音 6 2009-12-18 15:12:40 ... 约翰 5 2009-12-13 00:38:38 ... 约翰 4 2009-12-12 16:00:13 ... 约翰福音 3 2009-12-12 14:50:18 ... 约翰福音 2 2009-12-11 18:41:15 ... 约翰 1 2009-12-04 03:12:06 NULL

这在 excel 中很容易完成,但我需要用户 + 日期的分组属性才能进行一些分析。

感谢所有帮助!!

最佳答案

试试这个

Select current.time - previous.time As TimeDiff
From   UserTable current Join
       UserTable previous On current.User = pervious.User And current.Order - 1 = previous.Order
Where current.User = 'John'

这应该让你得到时差。 您说过您知道如何从那里获得平均值。

关于不同行之间的 MySQL 时间作为聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615712/

相关文章:

mysql - 如何在 MySQL 中构建一个非常简单的博客的表?

使用 O_DIRECT 一致写入许多 block

mysql - Where 子句在存储过程之外工作时不起作用

php - 在codeigniter php的电子商务购物车系统中通过复选框搜索产品

c# - SQL 表作为 IDBCommand 的参数

Java实体插入DB更改列类型

php - 将独立项目包含到 codeigniter View 中

mysql - 如何优化 ORDER 条件以防止文件排序?

java - jOOQ - 返回 "then"查询中 "when"的字段元组

mysql - 如何选择每组中具有最大值的第一行?