【发布时间】:2017-06-02 16:16:31
【问题描述】:
我有下表“用户状态”:
_id___|_ctime____________________________|_state__________|_userid
1 | 2014-06-09 05:57:07.033334+00 | Ready | 1
2 | 2014-06-09 05:53:35.243864+00 | Busy | 1
3 | 2014-06-09 05:51:39.412722+00 | Ready | 1
4 | 2014-06-09 05:48:48.09651+00 | logged out | 1
*ctime 表示用户获取新状态的时间。 这张表的意思是,我只有状态的开始时间,但不知道结束时间。 状态的结束时间是另一个状态的开始时间。
我需要一个 SQL 查询,它将为我提供每个状态的以下数据:
用户名 |状态 | ctime |结束时间 将结束时间视为下一个状态的开始时间(ctime)
无法向“UserState”表添加新列。但有可能,具有 (id = 1) 的用户可能在相同状态“就绪”之后具有状态“就绪”,这些状态必须分组为 1 行。
【问题讨论】:
-
当 ID #1 的用户被分组时,
ctime是什么?第一个还是最后一个?这只发生在#1 上?
标签: sql postgresql