我正在尝试比较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列中的值相同即可。我不认为第一列对解决问题很重要,但是它可以为其余数据做出正确的顺序。第三列是我需要做的比较,然后检查差异,因为它在桌子下面。我需要跟踪它上升和下降的次数。有什么想法吗?
答案 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