根据mysql中的下一行选择行

时间:2013-02-06 11:35:44

标签: mysql select where

我有一张这样的表:

Type | Time
1    | 234234
2    | 234235
1    | 234238
3    | 234239
4    | 234240
1    | 234242
2    | 234245

我想计算type=1和下一行type=2所有行的数量。
例如:此处的结果为2。 我不知道如何将where条款放在next row上。

1 个答案:

答案 0 :(得分:1)

您应该能够实施user defined variables来获得总数:

select count(*) Total
from
(
  select type, 
    @row:=(case when @prev=1 and type=2 then 'Y' else 'N' end) as Seq,
    @prev:=type 
  from yourtable, (SELECT @row:=null, @prev:=null) r
  order by time, type
) src
where Seq = 'Y'

请参阅SQL Fiddle with Demo