У меня есть таблица, в которой хранятся обращения к страницам в веб-приложении, хранящие
unique_row_id http_session_id page_name page_hit_timestamp
----------------------------------------------------------------
0 123456789 index.html 2010-01-20 15:00:00
1 123456789 info.html 2010-01-20 15:00:05
2 123456789 faq.html 2010-01-20 15:00:15
3 987654321 index.html 2010-01-20 16:00:00
4 987654321 faq.html 2010-01-20 16:00:05
5 987654321 info.html 2010-01-20 16:00:15
6 111111111 index.html 2010-01-20 16:01:00
7 111111111 faq.html 2010-01-20 16:01:05
8 111111111 info.html 2010-01-20 16:01:15
Я хочу запустить SQL-запрос, который покажет мне наиболее распространенную страницу, на которой заканчивают просмотр пользователи.
Итак, мое первоначальное мнение состоит в том, что в моем (java) приложении я могу запустить запрос, который будет выбирать отдельные значения http_session_id из таблицы, а затем для каждого отдельного http_session_id запускать другой запрос, который получает страницу с «самой последней» page_hit_timestamp, и суммировать общее количество всех этих страниц. (Для примера данных выше у меня будет счетчик 2 для info.html и счетчик 1 для faq.html.)
Но я хотел бы знать следующее: есть ли способ объединить эти два запроса в один оператор sql - или мне нужно будет пройти маршрут хранимой процедуры для этого?
Я рассмотрел использование соединения, но не могу понять, применимо ли оно в этом сценарии.
PS: я знаю, что мог бы использовать Google Analytics в своем приложении, чтобы предоставить мне эту информацию, но а) это мобильное веб-приложение, поэтому оно не подходит для готовых инструментов аналитики, и б) мне просто любопытно знать, можно ли это сделать в SQL.