En una tabla tenemos un listado de vídeos, un contador de reproducciones y otros datos (titulo de video, id de usuario, etc).
Código:
clave_usuario clave_video contador
246 1 3
123 2 1
246 3 88
123 4 99
Estoy tratando ajustar una query para seleccionar
un registro por usuario con el máximo contador. Es decir, en la anterior tabla, quiero recuperar los videos mas votados por usuario:
Código:
clave_usuario clave_video contador
246 3 88
123 4 99
Sin embargo, con la siguiente query solo puedo recuperar los primero registros en introducirse independientemente del número de votos (contador)
Código:
clave_usuario clave_video contador
246 1 3
123 2 1
Esta es la query real que estoy usando:
Código:
SELECT vid.vid_clave AS vidId,
vid.vid_usu_clave AS usuId,
vid.vid_archivo AS youtubeId,
vid.vid_contador AS contador,
vid.vid_titulo AS titulo,
vid.vid_descripcion AS descripcion,
usu.usu_nick AS nick
FROM scx_videos vid
INNER JOIN scx_usuarios usu
ON usu.usu_clave = vid.vid_usu_clave
WHERE usu_validado = 1
GROUP BY usu_nick
ORDER BY vid_contador DESC, vidId DESC
LIMIT 10
He intentado añadir " HAVING MAX(vid_contador)" al GROUP BY pero los resultados son idénticos.
Quizá la solución necesite subquerys, crear vistas, aunque eso no sé aplicarlo aun...
¿Seríais tan amables de echarme un cable?
gracias!