MySQL - 获取连续的天数保持不变

标签 mysql

我有一个跟踪在线游戏玩家统计数据的网站。我试图构建的功能之一是获取玩家的氏族历史。保存此信息的表如下所示:

PLAYERID --|-- CLANTAG -|- UPDATETIME
-----------------------------------------------
XXXXXXXX --|-- [XXXXX] -|- 0000-00-00 00:00:00

UPDATETIME 是我的爬虫访问游戏 API 并获取信息的日期和时间,这也是我在某个部落中花费的时间的基础。

我有这个查询,但它只获取用户进入部落的日期。我想不通的是如何获得他拥有该 CLANTAG 的最早日期和最新日期:

SELECT CLANTAG, UPDATETIME FROM account_stats WHERE PLAYERID = "XXXXXXXXX" GROUP BY CLANTAG

另一个问题是用户可能离开了一个部落然后又加入了它,而我上面所做的查询只是将它们捆绑在一起,所以我完全迷路了:/

提前致谢!

最佳答案

要获取每个组的最早和最晚日期,您可以使用 MIN()MAX() 聚合函数

SELECT playerid, clantag, 
       MIN(updatetime) earliest_time,
       MAX(updatetime) latest_time
  FROM Table1
 WHERE playerid = 1
 GROUP BY playerid, clantag

示例输出:

| PLAYERID | CLANTAG |              EARLIEST_TIME |                 LATEST_TIME |
---------------------------------------------------------------------------------
|        1 |       1 | May, 20 2013 12:00:00+0000 | July, 03 2013 15:00:00+0000 |

这是 SQLFiddle 演示

关于MySQL - 获取连续的天数保持不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18236705/

相关文章:

mysql - 获取表中间的一行

mysql - 无法添加或更新子行: foreign key with mysql

MySQL 日期差异查询

php - Sql 内连接查询困境 - 需要连接 Auto_increment 值

mysql - 连接同一个表中的两个外键引用相同的主键

javascript - 如何在node js中转换时间戳结果

php - 在单个查询中使用一个 ID 插入多条记录

mysql - 根据单个值检查多个 MySQL 列

php - 存储敏感数据的最佳方式

php - 从使用 php 的表单输入的数字中减去按价格排序的 mysql 行数组,日期