У меня был немного головокружительный момент SQL, и мне было интересно, если кто-нибудь может помочь.Используя эти данные (например):
workId rateRevision
1 1
1 2
1 3
2 1
3 1
3 2
4 1
4 2
4 3
... Я в основном хочу удалить все дубликаты, кроме последней ревизии (самое высокое значение rateRevision).Таким образом, я бы закончил с:
workId rateRevision
1 3
2 1
3 2
4 3
Теоретически это звучит очень просто, но я не могу решить это в SQL.Вот мой текущий код:
SELECT * FROM rate r
WHERE r.rateRevision =
(select r.rateRevision from rate r ORDER BY r.rateRevision DESC LIMIT 1);
... но он просто возвращает
workId rateRevision
4 3
Конечно, в данный момент это только выбор значений, но я планировал по существу простоизменив его для оператора удаления.У кого-нибудь есть идеи, пожалуйста?
Большое спасибо!Matt