Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2012, 03:25
alfupe
 
Fecha de Ingreso: octubre-2012
Mensajes: 2
Antigüedad: 11 años, 7 meses
Puntos: 0
seleccionar registro con valor máximo en una columna

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!