Задать вопрос
@ki11k4
Web программист - любитель

Как выбрать последнее уникальное значение?

Имеется таблица с данными
5e5e2d3aab3c7682598566.png

Из неё нужно вытащить последние записи с уникальным значение столбца "counter_id"

Пробую сделать таким запросом
SELECT * FROM (SELECT * FROM countersRecords ORDER BY id DESC) AS gagaga GROUP BY gagaga.counter_id


В итоге должны выбрать 2 и 3 идентификаторы, а выбираются 1 и 3.

Код
SELECT * FROM countersRecords GROUP BY counter_id ORDER BY id ORDER BY id DESC

тоже не даёт результатов.
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
SELECT r.id
FROM countersRecords r
WHERE r.id = (
    SELECT MAX(id)
    FROM countersRecords latest
    WHERE latest.counter_id = r.counter_id
) t

Но работать будет не особо быстро, тем более если таблица большая.
Ответ написан
Комментировать
serginhold
@serginhold
это выбрать максимум:

select max(id) as id
from t
group by counter_id


Если нужны доп данные, при включенном ONLY_FULL_GROUP_BY будет ошибка, если в select добавить любое другое поле, по этому решается или через join, или вложенный запрос:

select * from t
where id in (
    select max(t2.id)
    from t t2
    group by t2.counter_id
)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы