0

我有一张这样的桌子:

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

我想计算所有那些行的数量 wheretype=1和 next row's type=2
例如:这里的结果是2。我不知道如何将where条款放在next row.

4

1 回答 1

1

您应该能够实现用户定义的变量来获得总数:

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

于 2013-02-06T11:49:37.107 回答