SQL - самая последняя отметка времени для каждого пользователя

У меня есть таблица с учетной записью пользователя, текущим состоянием учетной записи и временной отметкой любых изменений, внесенных в статус. Когда я запускаю следующую команду для двух конкретных учетных записей, она возвращает каждую дату и время, когда произошли изменения, но мне нужны только самые последние дата и время для каждой учетной записи.

Когда я пытаюсь включить Group BY ACCOUNT, я получаю следующую ошибку:

"должен быть сгруппирован или использован в статистической функции"

Любая помощь будет высоко ценится.

select ACCOUNT, Status,LAST_UPDATE_TIMESTAMP
from ACCOUNT_ROLE 
where ACCOUNT in (123456789,987654321);

2 ответа

Если вы хотите сгруппировать по ACCOUNT и получите максимальную отметку времени последнего обновления для каждой учетной записи, которую вы можете попробовать следующим SQL:

select ACCOUNT, MAX(LAST_UPDATE_TIMESTAMP)
    from ACCOUNT_ROLE 
    where ACCOUNT in (123456789,987654321) -- this is an optional filter clause.
    group by ACCOUNT

Вы должны будете оставить STATUS поле из предложения выбора.

Предположения: LAST_UPDATE_TIMESTAMP поле типа date time.

Я не знаю, почему вы используете предложение GROUP BY. я думаю, что вы пытаетесь отобразить значения, заказав ACCOUNT. Если это так, заказ пользователя по ACCOUNT

Другие вопросы по тегам