mysql - 根据mysql中的下一行选择行

标签 mysql select where-clause

我有一个这样的表:

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

我想计算 type=1 和下一行 type=2 的所有行的数量。
例如:这里的结果是2。 我不知道如何将 where 子句放在下一行上。

最佳答案

您应该能够实现 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

关于mysql - 根据mysql中的下一行选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14728094/

相关文章:

mysql - SELECT * WHERE var == [众多选择之一]

mysql - 通过另一个不同的 column2 选择 column1 的 MIN 和 MAX 并获取整行

php - 在 SQL 数据库中搜索单个

mysql - 查找一个月有多少分钟 : MySQL

mysql - 从一个表中获取第一行和最后一行

mysql - 为什么这个查询不起作用?

MySQL 查询在 phpmyadmin 中不起作用

python - 查询数据库中的多个列并查找它们的总和

sql - 获取最近 90 天的记录 (SQL)

mysql - 选择其中(列定义为)或 count(*) > 50 类似的东西