我的数据库中有很多志愿工作者的时间戳条目:我们称它们为“worker1”和“worker2”。我需要找出worker1什么时候开始工作,之后worker2什么时候开始工作(它们一次一个地交替工作)对于同一个worker可以有多个连续的时间戳。
(1, 1351508000, 'worker1'),
(2, 1351508020, 'worker1'),
(3, 1351508060, 'worker2'),
(4, 1351508070, 'worker1'),
(5, 1351508089, 'worker1'),
(6, 1351508200, 'worker1'),
(7, 1351508300, 'worker1'),
(8, 1351508370, 'worker2'),
(9, 1351508410, 'worker2'),
(10,1351508450, 'worker2'),
(11,1351508530, 'worker1'),
(12,1351508700, 'worker2'),
(13,1351508780, 'worker2')
所以结果应该是:
1351508000, 'worker1'
1351508060, 'worker2'
1351508070, 'worker1'
1351508370, 'worker2'
1351508530, 'worker1'
1351508700, 'worker2'
谢谢你帮助我们!
http://sqlfiddle.com/#!9/483706/2
1条答案
按热度按时间4dbbbstv1#
问题的核心可以这样解决。。。
从这里开始,您可以在groupwise max(或min)的标准模式中使用上面的子查询,如下所示。。。