比较mysql中单个表中的相邻行

时间:2015-04-13 00:33:01

标签: mysql sql

我正在尝试比较mysql表中的相邻行,降序行。数据有三列:

 Col 1 | Col 2 | Col 3
date 1   apple    12
date 2   apple    5
date 3   apple    7
date 1   pear     8
date 2   pear     3
etc...

我试图弄清楚如何将行与下面的行进行比较,只要第2列中的值相同即可。我不认为第一列对解决问题很重要,但是它可以为其余数据做出正确的顺序。第三列是我需要做的比较,然后检查差异,因为它在桌子下面。我需要跟踪它上升和下降的次数。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用变量来跟踪上一行并对其进行比较

select col2, is_greater, count(*) from (
    select *, if(@prevCol2 = col2,@prevCol3 > col3,null) is_greater, 
         @prevCol3 := col3, @prevCol2 := col2
    from mytable
    order by col2, col1
) t1 group by col2, is_greater