Mam tabelę, która zawiera (powiedzmy) wszystkie czasy, gdy użytkownik spojrzał na określonej stronie internetowej. Użytkownicy mogą oczywiście spojrzeć na stronie więcej niż jeden raz, więc nie może być wielokrotne wpisy dotyczące użytkowników i stron, tak jak poniżej:Jak wybierać wiersze z MySQL na podstawie maksymalnej wartości kolumny + grupowania
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
chcę zrobić kwerendę, która zwraca wiersze odpowiadające każdej stronie widzianej przez każdego użytkownik Z ZAŁOGIEM, że jeśli użytkownik obejrzał stronę więcej niż raz, otrzymuję wiersz odpowiadający najnowszemu widokowi (tj. największej wartości CZASU). Tak więc, należy uzyskać to:
nid time user page_id
25 8000 4 467
24 7000 1 482
23 6000 1 484
21 4000 5 467
Tracimy wiersz 22 ze względu użytkownika 1 spojrzał na stronie 482 w późniejszym czasie, a tracimy wiersz 20, ponieważ użytkownik 4 spojrzał na stronie 467 w późniejszym czasie.
Prawie to odkryłem, ale nie mogę tego całkiem złamać, a jednocześnie przekonać samego siebie, że wyniki, które otrzymuję, będą generalnie poprawne, a nie tylko przypadek moich przypadków testowych. Wciąż przechodzę pomiędzy zapytaniami GROUP BY lub DISTINCT i osadzonymi zapytaniami, a potem mój mózg eksploduje. Jakieś sugestie? Dzięki!
Duplikat pytanie [http: // stackoverflow.com/questions/612231/how-can-i-select-rows-with-maxcolumn-value-distinct-by-another-column-in-sql] – user1486030