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

[SOLUCIONADO] Problema con una consulta sql

Estas en el tema de Problema con una consulta sql en el foro de Bases de Datos General en Foros del Web. Buenas, tengo la siguiente consulta: SELECT GRUPOS.NOMBRE_GRUPO, COUNT(MUSICOS.NOMBRE_MUSICO) AS MUSICOS FROM MUSICOS, GRUPOS WHERE GRUPOS.COD_GRUPO = MUSICOS.GRUPO GROUP BY GRUPOS.NOMBRE_GRUPO ORDER BY MUSICOS DESC; la ...
  #1 (permalink)  
Antiguo 16/02/2017, 09:10
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta Problema con una consulta sql

Buenas,
tengo la siguiente consulta:


SELECT GRUPOS.NOMBRE_GRUPO, COUNT(MUSICOS.NOMBRE_MUSICO) AS MUSICOS FROM MUSICOS, GRUPOS WHERE GRUPOS.COD_GRUPO = MUSICOS.GRUPO GROUP BY GRUPOS.NOMBRE_GRUPO ORDER BY MUSICOS DESC;

la cual me devuelve lo siguiente:


NOMBRE_GRUPO MUSICOS
---------------------------------------- ----------
Supertramp 6
Marillion 6
The Alan Parsons Project 5
King Crimson 5
Camel 4
Pink Floyd 4
Queen 4
Marea 3
Boston 3

9 filas seleccionadas.

Mi pregunta es como hago para que solo aparezaca el resultado de mayor valor de la columna MUSICOS.

Gracias
  #2 (permalink)  
Antiguo 16/02/2017, 09:26
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Problema con una consulta sql

Código SQL:
Ver original
  1. SELECT MAX(musicos), nombre_grupo FROM(
  2. SELECT GRUPOS.NOMBRE_GRUPO, COUNT(MUSICOS.NOMBRE_MUSICO) AS MUSICOS FROM MUSICOS, GRUPOS WHERE GRUPOS.COD_GRUPO = MUSICOS.GRUPO GROUP BY GRUPOS.NOMBRE_GRUPO
  3. ) AS t1 GROUP BY nombre_grupo
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 16/02/2017, 09:57
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema con una consulta sql

Cita:
Iniciado por Libras Ver Mensaje
Código SQL:
Ver original
  1. SELECT MAX(musicos), nombre_grupo FROM(
  2. SELECT GRUPOS.NOMBRE_GRUPO, COUNT(MUSICOS.NOMBRE_MUSICO) AS MUSICOS FROM MUSICOS, GRUPOS WHERE GRUPOS.COD_GRUPO = MUSICOS.GRUPO GROUP BY GRUPOS.NOMBRE_GRUPO
  3. ) AS t1 GROUP BY nombre_grupo
No me funciona, me da error:

ORA-00933: comando SQL no terminado correctamente
  #4 (permalink)  
Antiguo 16/02/2017, 10:15
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Problema con una consulta sql

ponle un ; al final.......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 16/02/2017, 10:18
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema con una consulta sql

Cita:
Iniciado por Libras Ver Mensaje
ponle un ; al final.......
Se lo puse y me da error
  #6 (permalink)  
Antiguo 16/02/2017, 10:22
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Problema con una consulta sql

Probemos con esto:


Código SQL:
Ver original
  1. SELECT MAX(t1.musicos), t1.nombre_grupo FROM(
  2. SELECT GRUPOS.NOMBRE_GRUPO, COUNT(MUSICOS.NOMBRE_MUSICO) AS MUSICOS FROM MUSICOS, GRUPOS WHERE GRUPOS.COD_GRUPO = MUSICOS.GRUPO GROUP BY GRUPOS.NOMBRE_GRUPO
  3. ) AS t1 GROUP BY nombre_grupo;
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 16/02/2017, 10:28
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema con una consulta sql

Cita:
Iniciado por Libras Ver Mensaje
Probemos con esto:


Código SQL:
Ver original
  1. SELECT MAX(t1.musicos), t1.nombre_grupo FROM(
  2. SELECT GRUPOS.NOMBRE_GRUPO, COUNT(MUSICOS.NOMBRE_MUSICO) AS MUSICOS FROM MUSICOS, GRUPOS WHERE GRUPOS.COD_GRUPO = MUSICOS.GRUPO GROUP BY GRUPOS.NOMBRE_GRUPO
  3. ) AS t1 GROUP BY nombre_grupo;
Nada, estamos en las mismas, me sigue dando error
  #8 (permalink)  
Antiguo 16/02/2017, 10:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Problema con una consulta sql

Código SQL:
Ver original
  1. SELECT MAX(t1.musicos), t1.nombre_grupo FROM(
  2. SELECT GRUPOS.NOMBRE_GRUPO AS nombre_grupo, COUNT(MUSICOS.NOMBRE_MUSICO) AS MUSICOS FROM MUSICOS, GRUPOS WHERE GRUPOS.COD_GRUPO = MUSICOS.GRUPO GROUP BY GRUPOS.NOMBRE_GRUPO
  3. ) AS t1 GROUP BY t1.nombre_grupo;
Probemos de nuevo.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 16/02/2017, 15:32
 
Fecha de Ingreso: agosto-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema con una consulta sql

Ya encontre la solucion:

Código SQL:
Ver original
  1. SELECT NOMBRE_GRUPO “GRUPO”, COUNT(*) "MUSICOS"
  2. FROM GRUPOS, MUSICOS
  3. WHERE GRUPOS.COD_GRUPO = MUSICOS.GRUPO
  4. GROUP BY NOMBRE_GRUPO
  5. HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM MUSICOS GROUP BY GRUPO);

Muchas gracias por la ayuda.

Última edición por gnzsoloyo; 17/02/2017 a las 13:00
  #10 (permalink)  
Antiguo 17/02/2017, 13:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con una consulta sql

Estabas poniendo un GROUP BY en una subconsulta, lo que en Oracle no se puede hacer. No lo admite.

Cuando se disparen errores lo que tienes que hacer es buscar el código de error que el motor de BBDD reporta. Alli está la clave.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sql
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 12:41.