用于比较两个不同日期的字段值的SQL查询

时间:2015-10-13 14:11:08

标签: mysql compare

我有一张表:

Date    Name    Rating
01-Dec-14   Ash A
02-Dec-14   Ash A
03-Dec-14   Ash AA
04-Dec-14   Rob BB
05-Dec-14   Rob BB
06-Dec-14   Charly  A
07-Dec-14   Charly  AA

我只是写一个sql查询,它给出了日期/名称/评级,其中评级在日期之间发生了变化。更准确地说,我想知道一段时间内哪些名称的评级发生变化。

感谢很多。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用变量枚举行然后聚合:

select name, rating, min(date) as firstdate, maxdate(lastdate)
from (select t.*,
             (@grp := if(@nr = concat_ws(':', name, rating), @grp,
                        if(@nr := concat_ws(':', name, rating), @grp + 1, @grp + 1)
                        )
             ) as grp
      from table t cross join
           (select @grp := 0, @nr := '') params
      order by name, date
     ) t
group by name, grp, rating;