У меня есть таблица, которая содержит (скажем,) все случаи, когда пользователь просматривал определенную веб-страницу . Пользователи, конечно, могут просматривать страницу более одного раза, поэтому для пользователей и страниц может быть несколько записей, например:
nid time user page_id
25 8000 4 467
24 7000 1 482
23 6000 1 484
22 5000 1 482
21 4000 5 467
20 3000 4 467
Я хочу сделать запрос, который возвращает строки, соответствующие каждой странице, просматриваемой каждым пользователем. ЧТО, если пользователь просматривал страницу более одного раза, я получаю строку, соответствующую самому последнему просмотру (т.е. наибольшему значению TIME). Таким образом, я должен получить следующее:
nid time user page_id
25 8000 4 467
24 7000 1 482
23 6000 1 484
21 4000 5 467
Мы теряем строку 22, потому что пользователь 1 просмотрел страницу 482 позже, и мы теряем строку 20, потому что пользователь 4 просматривал страницу 467 позже.
У меня почти есть это понял, но не могу взломать, в то же время убеждая себя, что результаты, которые я получаю, будут в целом правильными, а не просто случайностью моих тестовых примеров. Я продолжаю переходить между запросами GROUP BY или DISTINCT и встроенными запросами, а затем мой мозг взрывается. Какие-либо предложения? Спасибо!