Как получить для каждого отдельного вхождения первичного ключа в таблице первый из упорядоченного набора строк? - PullRequest
1 голос
/ 02 декабря 2010

Я хочу получить определенный набор результатов из таблицы в одном запросе , и я не могу найти, как это сделать.

У меня есть таблица, записывающая каждое изменение состояния агента (в сети, в автономном режиме, вдали и т. Д.) И время, когда это произошло.

Я хочу получить для каждого идентификатора агента последнее изменение состояния , т.е. с учетом агентов А и В, у меня будет исходная таблица, содержащая:

ID | ГОСУДАРСТВО | DATETIME

А | Онлайн | 29.11.2010

А | Не в сети | 30.11.2010

B | В гостях | 28.11.2010

B | Онлайн | 30.11.2010

И я бы хотел сгенерировать вывод примерно так:

ID | ГОСУДАРСТВО | DATETIME

A | Не в сети | 30.11.2010

B | Онлайн | 30.11.2010

Я понимаю, что это может быть действительно простой запрос на выборку, но я не могу понять, что я из себя представляю. Также сумасшедший реквизит, если он может быть совместим с INFORMIX: D

1 Ответ

2 голосов
/ 02 декабря 2010

Как насчет:

SELECT datetime, id, state FROM table t1 
 WHERE t1.datetime = (SELECT MAX(t2.datetime) FROM table t2 WHERE t2.id=t1.id)
...