Я новичок в SQL, и не смог выяснить, как сделать запрос ниже. Конечно, я скучаю по довольно простому выражению, но сам не смог его найти.
У меня есть таблица ниже, используемая для хранения записей журнала приложений. Каждая запись имеет временную метку записи, идентификатор приложения, сделавшего эту запись, действие, которое приложение фактически выполнило, и уникальный идентификатор для данного сеанса этого экземпляра приложения.
item_id item_datetime app action session_id
1 2011-06-20 19:01:04 a start 23B6C531-6D38-4E47-A887-10B945B48BD9
2 2011-06-20 19:01:05 b start 7E6D0F55-4280-46DF-A829-F6821FF028D5
3 2011-06-20 19:03:45 b job 7E6D0F55-4280-46DF-A829-F6821FF028D5
4 2011-06-20 19:09:33 a job 23B6C531-6D38-4E47-A887-10B945B48BD9
5 2011-06-20 19:27:00 a quit 23B6C531-6D38-4E47-A887-10B945B48BD9
6 2011-06-20 19:50:00 c start 12345678-1234-4321-1234-109876543210
7 2011-06-20 19:50:01 c quit 12345678-1234-4321-1234-109876543210
8 2011-06-20 19:50:22 b quit 7E6D0F55-4280-46DF-A829-F6821FF028D5
В этом примере 3 разных приложения «a», «b» и «c» выполняются одновременно, причем каждый сеанс перекрывает другие. Что мне нужно, так это список, сгруппированный по сеансам, и сеансы (полученные группы) должны быть упорядочены по времени начала сеанса.
Для приведенного выше примера таблицы, я ожидаю ниже результата:
item_id item_datetime app action session_id
1 2011-06-20 19:01:04 a start 23B6C531-6D38-4E47-A887-10B945B48BD9
4 2011-06-20 19:09:33 a job 23B6C531-6D38-4E47-A887-10B945B48BD9
5 2011-06-20 19:27:00 a quit 23B6C531-6D38-4E47-A887-10B945B48BD9
2 2011-06-20 19:01:05 b start 7E6D0F55-4280-46DF-A829-F6821FF028D5
3 2011-06-20 19:03:45 b job 7E6D0F55-4280-46DF-A829-F6821FF028D5
8 2011-06-20 19:50:22 b quit 7E6D0F55-4280-46DF-A829-F6821FF028D5
6 2011-06-20 19:50:00 c start 12345678-1234-4321-1234-109876543210
7 2011-06-20 19:50:01 c quit 12345678-1234-4321-1234-109876543210
Я пытался сгруппировать с упорядочением по, но проблема в том, что сортировка результата основана на алфавитном порядке идентификаторов session_id - но это не то, что мне нужно, уникальность идентификатора сеанса - вот что важно, их «значение» делает не имеет значения.