Если задача означает «если есть дубликаты на (col1, col2)
, то удалите все такие дубликаты, кроме одного с наибольшим значением id
», тогда
SELECT DISTINCT MAX(id) OVER (PARTITION BY col1, col2) id, col1, col2
FROM sourcetable
ORDER BY id DESC /* not sure in this point */
LIMIT 10
PS. Почему "величайший"? из-за
Так что следует исключить строку 3, а НЕ строку 4, поскольку она дублируется.
Если запись с наименьшим необходимым значением id
необходима, замените MAX ( ) до MIN ().
PPS. Кажется, настоящая задача - «Показать последние 10 оригинальных сообщений из истории чата».