У меня есть таблица, которая содержит (допустим) все время, когда пользователь просматривал определенную веб-страницу. Конечно, пользователи могут просматривать страницу более одного раза, поэтому для пользователей и страниц может быть несколько записей:
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
Я хочу сделать запрос, который возвращает строки, соответствующие каждой странице, просматриваемой каждым пользователем. С CATCH. Если пользователь просматривал страницу более одного раза, я получаю строку, соответствующую последнему виду (т.е. наибольшее значение 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 и встроенными запросами, а затем мой мозг взрывается. Какие-либо предложения? Спасибо!