MySQL - 获得一行的天数保持不变

时间:2013-08-14 16:01:51

标签: 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

另一个问题是用户可能已经离开了一个战队然后再次加入它,而我上面的查询只是将它们捆绑在一起,所以我完全迷失了:/

提前致谢!

1 个答案:

答案 0 :(得分:1)

要获得每组最早和最晚的日期,您可以使用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 演示