Mysql 比较两个不同日期的字段值的SQL查询
我有一张桌子:Mysql 比较两个不同日期的字段值的SQL查询,mysql,compare,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查询,它给我日期/名称/评级,评级在日期之间发生了变化。更准确地说,我想知道在一段时间内,哪一个名字的评级何时发生变化 非常感谢。最简单的方法
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查询,它给我日期/名称/评级,评级在日期之间发生了变化。更准确地说,我想知道在一段时间内,哪一个名字的评级何时发生变化
非常感谢。最简单的方法是使用变量枚举行,然后聚合:
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;
我认为我们必须根据比率维护历史记录表,这在“简单SQL查询”中是不可能的,因为使用简单SQL无法在行之间进行比较。您需要使用游标或程序来完成此操作。