У меня есть таблица, в которой значимые столбцы выглядят так:
username
source
description
Моя цель - получить 10 самых последних записей, в которых комбинация пользователь / источник уникальна. Из следующих данных:
1 katie facebook loved it!
2 katie facebook it could have been better.
3 tom twitter less then 140
4 katie twitter Wowzers!
Запрос должен возвращать записи 2,3 и 4 (допустим, более высокие идентификаторы более поздние - в фактической таблице используется столбец отметки времени).
Мое текущее решение «работает», но требует 1 выбор, чтобы сгенерировать 10 записей, а затем 1, чтобы получить правильное описание для каждой строки (таким образом, 11 выбирает, чтобы сгенерировать 10 записей) ... Я должен представить, что есть лучший способ идти. Это решение:
SELECT max(id) as MAX_ID, username, source, topic
FROM events
GROUP BY source, username
ORDER BY MAX_ID desc;
Возвращает правильные идентификаторы, но неправильные описания, поэтому я могу затем выбрать правильные описания по идентификатору записи.