Tengo una tabla que contiene (digamos) todas las veces que un usuario miró una página web específica. Los usuarios pueden, por supuesto, miran una página más de una vez, por lo que no puede haber varias entradas para los usuarios y las páginas, así:Cómo seleccionar filas de MySQL según el valor máximo de una columna + agrupación
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
Quiero hacer una consulta que devuelve las filas correspondientes a cada página vista por cada usuario WITH THE CATCH QUE si un usuario mira una página más de una vez, obtengo la fila correspondiente a la vista más reciente (es decir, el valor más grande de TIME). Por lo tanto, debería conseguir esto:
nid time user page_id
25 8000 4 467
24 7000 1 482
23 6000 1 484
21 4000 5 467
Perdemos fila 22 porque el usuario 1 miraba la página 482 en un momento posterior, y perdemos fila 20 porque el usuario 4 miró la página 467 en un momento posterior.
Casi tengo esto resuelto, pero no puedo descifrarlo, y al mismo tiempo me convenzo de que los resultados que obtenga serán generalmente correctos y no solo un accidente en mis casos de prueba. Sigo yendo y viniendo entre las consultas GROUP BY o DISTINCT y las consultas integradas, y luego mi cerebro explota. ¿Alguna sugerencia? ¡Gracias!
pregunta Duplicar [http: // stackoverflow.com/questions/612231/how-can-i-select-rows-with-maxcolumn-value-distinct-by-another-column-in-sql] – user1486030