SQL - самая последняя отметка времени для каждого пользователя - PullRequest
0 голосов
/ 26 июня 2018

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

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

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

Любая помощь будет принята с благодарностью.

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

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

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

0 голосов
/ 26 июня 2018

Если вы хотите сгруппировать по 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 из предложения select.

Допущения: LAST_UPDATE_TIMESTAMP - поле типа дата-время.

...