0

假设我有以下行:

'employee' , 'is_here' , 'ts'
      1    ,    1      ,   22
      2    ,    1      ,   33
      1    ,    0      ,   44
      1    ,    0      ,   55
      2    ,    0      ,   66
      1    ,    0      ,   77
      2    ,    0      ,   88
      1    ,    1      ,   99

有什么方法可以显示某些员工的结果然后is_here发生变化?

例如,我想获取员工 #1is_here更改的行,因此输出将是:

1,1,22 1,0,44 1,1,99

我想那将是具有挑战性的:)

4

1 回答 1

1

只要您当时只为一名员工运行查询

set @state = -1;

select employee,
       @state := is_here as changed_to,
       ts
  from working
 where employee = 1 
   and (@state = -1 or @state != is_here);

http://sqlfiddle.com/#!2/a71d8/11

于 2012-10-18T20:57:59.607 回答