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    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   
  

Поэтому, если значение Джона равно 100, я бы хотел получить только один раз (дата не имеет значения, она может быть самой новой или самой старой). Но если значение изменяется (даже на более раннее значение) Я бы хотел записать это в выходные данные. Как я могу это сделать?

Комментарии:

1. Какие СУБД вы используете?

2. Нет. Например, доход Джона равен 100, а следующие 4 строки для Джона также равны 100, мне нужна только первая или последняя. (но только один раз). Если он изменится на 200, я бы хотел, чтобы это было на выходе. И если он изменится с 200 на что-либо еще (даже 100) Я хочу, чтобы это снова было на выходе. Это понятно?

3. group by предложение try с name,income и, чтобы определить измененное значение, создайте дополнительный столбец с именем, скажем, «chnage». Теперь, если значение chnages, вы делаете этот столбец 1, иначе сохраните его 0.In таким образом, вы также можете получить обновленное значение

4. Существуют ли какие-либо методы решения этой проблемы без добавления дополнительных столбцов?

Ответ №1:

Это немного неправильно, но

 SELECT * FROM table GROUP BY name, income;
  

Или используйте DISTINCT

 SELECT DISTINCT name, income FROM table;
  

Комментарии:

1. Спасибо, но на этот раз Distinct на самом деле не является ответом :/