mysql - GROUP BY 相同记录但不同 TIMESTAMP/DATETIME

标签 mysql

我正在尝试GROUP BY相同的记录,但时间戳日期时间。 与首次进入时差仅3分钟左右。

示例:

这就是数据库表的样子。

*-------------------------------------------*
|   id  |   name    |         time          |
|   1   |   Lei     | 2018-02-21 12:00:10   |
|   2   |   Lei     | 2018-02-21 12:01:11   |
|   3   |   Lei     | 2018-02-21 12:01:15   |
|   4   |   Lei     | 2018-02-21 12:01:16   |
|   5   |   Anna    | 2018-02-21 12:03:11   |
|   6   |   Anna    | 2018-02-21 12:03:13   |
|   7   |   Bell    | 2018-02-21 12:05:01   |
|   8   |   Lei     | 2018-02-21 12:10:00   |
*-------------------------------------------*

我想要获取 Lei 从她的第一个 timestampdatetime 记录开始的 12:00:10 至 3 分钟内的条目。

所以输出会是这样的。

*-------------------------------------------*
|   id  |   name    |         time          |
|   1   |   Lei     | 2018-02-21 12:00:10   |
|   5   |   Anna    | 2018-02-21 12:03:11   |
|   7   |   Bell    | 2018-02-21 12:05:01   |
|   8   |   Lei     | 2018-02-21 12:10:00   |
*-------------------------------------------*

我将很高兴感谢您的帮助,无论是 mysql 还是 php。

最佳答案

SQL Fiddle

MySQL 5.6 架构设置:

CREATE TABLE Table1
    (`id` int, `name` varchar(4), `time` datetime)
;

INSERT INTO Table1
    (`id`, `name`, `time`)
VALUES
    (1, 'Lei', '2018-02-21 12:00:10'),
    (2, 'Lei', '2018-02-21 12:01:11'),
    (3, 'Lei', '2018-02-21 12:01:15'),
    (4, 'Lei', '2018-02-21 12:01:16'),
    (5, 'Anna', '2018-02-21 12:03:11'),
    (6, 'Anna', '2018-02-21 12:03:13'),
    (7, 'Bell', '2018-02-21 12:05:01')
;

查询 1:

select id, name, min(time) as time
from Table1 
group by name
order by time

<强> Results :

    | id | name |                 time |
    |----|------|----------------------|
    |  1 |  Lei | 2018-02-21T12:00:10Z |
    |  5 | Anna | 2018-02-21T12:03:11Z |
    |  7 | Bell | 2018-02-21T12:05:01Z |

或者如果你想按间隔 3 分钟进行分组,你可以这样做

select id, name, min(time) as time
from Table1 
group by name, UNIX_TIMESTAMP(time) DIV 180
order by time
;

关于mysql - GROUP BY 相同记录但不同 TIMESTAMP/DATETIME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48897107/

相关文章:

php - 在单列中管理父子层次结构

mysql - 如何使用 hive 0.12 配置 mysql 5.5.35

php - 使用 php 将数据库从我的实时服务器导出到我的本地主机?

php - 如何将 XML 放入 mysql 表中并保持编码?

mysql - 如何使用 SQL 偏移表列?

php - 从下拉列表中获取值后动态填充字段

mysql - 为什么 SQL 工作台在每个查询中总是返回一个满是空值的行?

MySQL IF 在 SELECT 子句中?

php - 从 Mysql_Fetch_array 获取数据

php - 如何在没有购物车/详细产品页面功能的情况下为我的网站创建列表目录页面