Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] detalle con select max where group by

Estas en el tema de detalle con select max where group by en el foro de Mysql en Foros del Web. que tal maestros!! tengo la siguiente tabla: Código: |clave|categoria|puntaje|anio|mes| |..1..|....11...|..80...|2014|.1.| |..1..|....12...|..70...|2014|.1.| |..1..|....13...|..60...|2014|.1.| |..1..|....11...|..50...|2014|.2.| |..1..|....12...|..90...|2014|.2.| |..1..|....13...|..70...|2014|.2.| de donde necesito sacar por mes la categoria de la ...
  #1 (permalink)  
Antiguo 02/05/2014, 14:32
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
detalle con select max where group by

que tal maestros!!

tengo la siguiente tabla:

Código:
|clave|categoria|puntaje|anio|mes|
|..1..|....11...|..80...|2014|.1.|
|..1..|....12...|..70...|2014|.1.|
|..1..|....13...|..60...|2014|.1.|
|..1..|....11...|..50...|2014|.2.|
|..1..|....12...|..90...|2014|.2.|
|..1..|....13...|..70...|2014|.2.|
de donde necesito sacar por mes la categoria de la clave=1 Y anio =2014 con mas alto puntaje

osea:

mes 1
categoria 11
puntaje 80

mes 2
categoria 12
puntjae 90

hice la siguiente consulta:

Código MySQL:
Ver original
  1. SELECT mes, categoria, MAX(puntaje)
  2. WHERE clave='1' AND anio='2014'

pero obtengo:

mes 1
categoria 11
puntaje 80

mes 2
categoria 11
puntjae 90

como que me agrupa la categoria, porque?

gracias
  #2 (permalink)  
Antiguo 03/05/2014, 15:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: detalle con select max where group by

catpaw,
prueba esto
Código MySQL:
Ver original
  1. SELECT t1.anio, t1.mes, t1.categoria, t1.puntaje FROM (SELECT anio, mes, categoria, puntaje
  2. WHERE clave='1' AND anio='2014'  ORDER BY mes, puntaje DESC)t1 GROUP BY anio, mes
La respuesta de lo que preguntas es el comportamiento de MySQL cuando agrupa por un valor de uno o varios campos, para el resto de los campos te trae los primeros valores de cada. De ahí la necesidad de ordenar previamente para obtener el valor buscado, y luego hacer el agrupado.

Última edición por jurena; 04/05/2014 a las 00:57 Razón: añadido de DESC
  #3 (permalink)  
Antiguo 05/05/2014, 10:00
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
Respuesta: detalle con select max where group by

Hola jurena, muchas gracias ya quedo!!

Etiquetas: detalle, group, max, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:57.