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

Ayuda con consulta HAVING COUNT(*) >= ALL(SELECT count(*)

Estas en el tema de Ayuda con consulta HAVING COUNT(*) >= ALL(SELECT count(*) en el foro de Bases de Datos General en Foros del Web. Tengo las siguientes tablas: modelo = @id_modelo,.... revista = @id_revista, fecha.... y una relacion N:M que las une llamada escribe. La consulta que pretendo realizar ...
  #1 (permalink)  
Antiguo 19/05/2010, 11:47
 
Fecha de Ingreso: enero-2009
Mensajes: 50
Antigüedad: 15 años, 3 meses
Puntos: 0
Ayuda con consulta HAVING COUNT(*) >= ALL(SELECT count(*)

Tengo las siguientes tablas:

modelo = @id_modelo,....
revista = @id_revista, fecha....

y una relacion N:M que las une llamada escribe.

La consulta que pretendo realizar dice: "Mostrar la fecha de las revistas junto al número de modelos en las que han participado más modelos como escritoras"

La consulta que estoy haciendo es esta:

SELECT fecha, count(*) AS numModelos
FROM revista
WHERE id_revista IN (SELECT id_revista
FROM escribe
GROUP BY id_revista
HAVING COUNT(*) >= ALL(SELECT count(*)
FROM escribe
GROUP BY id_revista));

Seguro que se puede hacer de otras maneras pero me interesa que sea más o menos como pone ahi (pero que funcione).

El error que me sale es:

SELECT fecha, count(*) AS numModelos
*
ERROR en línea 1:
ORA-00937: la función de grupo no es de grupo único

A ver si alguien me ayuda para que funcione. Gracias por adelantado
  #2 (permalink)  
Antiguo 21/05/2010, 04:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda con consulta HAVING COUNT(*) >= ALL(SELECT count(*)

Código MySQL:
Ver original
  1. SELECT id_revista, count(*) as numModelos
  2. FROM escribe
  3. GROUP BY id_revista;

Obtenemos el numero de modelos por revista

Luego

Código MySQL:
Ver original
  1. SELECT r.fecha, Sbc.numModelos
  2. FROM revista
  3.    INNER JOIN (SELECT e.id_revista, count(*) as numModelos
  4.                         FROM escribe as e
  5.                         GROUP BY e.id_revista) as Sbc
  6.    ON r.id_revista=Sbc.id_revista
  7. ORDER BY Sbc.numModelos DESC;

Era esto... lo de ordenarlos descendentement es para que aparezcan primero

..."las que han participado más modelos como escritoras"...

Quim

Etiquetas: count
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 21:14.