MySQL跟踪列的更改
我的问题如下:MySQL跟踪列的更改,mysql,sql,Mysql,Sql,我的问题如下: Name Income Date --------------------------------- John 100 2014.03.03 John 100 2014.03.04 Mike 100 2014.03.04 John 200 2014.03.04 Martin 100 2014.03.04 Mike 100 2014.03.05 Mike
Name Income Date
---------------------------------
John 100 2014.03.03
John 100 2014.03.04
Mike 100 2014.03.04
John 200 2014.03.04
Martin 100 2014.03.04
Mike 100 2014.03.05
Mike 100 2014.03.05
John 200 2014.03.05
John 200 2014.03.05
John 200 2014.03.05
Martin 200 2014.03.05
John 100 2014.03.05
John 300 2014.03.05
我想要以下输出:
Name Income Date
---------------------------------
John 100 2014.03.03
Mike 100 2014.03.04
John 200 2014.03.04
Martin 100 2014.03.04
Martin 200 2014.03.05
John 100 2014.03.05
John 300 2014.03.05
因此,如果John的值是100,我只想得到一次(日期不重要,可以是最新的或最旧的)。但是,如果值发生变化(甚至是较早的值),我希望将其写入输出。我该怎么做 这有点不对,但是
SELECT * FROM table GROUP BY name, income;
或者使用不同的
SELECT DISTINCT name, income FROM table;
您正在使用哪些RDBMS?不。例如,John的收入是100,John的以下4行也是100,我只想要第一行或最后一行。(但只有一次)。如果它变为200,我希望它在输出中。如果它从200变为其他任何值(甚至100),我希望它再次出现在输出中。是否清楚?请尝试使用
名称、收入
的group by
子句,并检测更改的值,创建一个名为“chnage”的额外列。现在,如果值发生变化,则使该列1保持为0。通过这种方式,您可以获得更新后的值。是否有任何方法可以在不添加额外列的情况下解决此问题?谢谢,但这次的答案不是Distinct:/