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