Pequeño problema con ejercicio de sql

josedvd123 Seguir

Gamma
Social Media
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
13 Feb 2013
Mensajes
209
Buenas tardes Betas!
Estoy estudiando base de datos, pero aún soy muy novato :p

Tengo un problema en el siguiente ejercicio:
Muestra el resultado más repetido del P.E. Valencia. Adjunto la base de datos *Ver el archivo adjunto BD LIGA.rar

Lo que he logrado hacer es esto:
SELECT a.resultado FROM partido a GROUP BY a.resultado HAVING COUNT(a.resultado)=(SELECT MAX(c.total) FROM (SELECT COUNT(b.resultado) as total FROM partido b GROUP BY b.resultado)c);

y me dice el resultado más repetido pero no se como especificar que sea el resultado mas repetido de P.E. Valencia.
Alguien me podría ayudar?
Gracias!!!! :encouragement:
 
Última edición:

SrSagek

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 May 2013
Mensajes
136
Creo que te faltaria meter un WHERE a.equipo = 'P.E. Valencia' para dejar solo los resultados de ese equipo.

P.D: Tienes un lio de sentencia en SQL, intenta ser más claro en sentencias de ese tipo.... Te faltan parentesis para que se aclare mas....

SELECT a.resultado FROM partido a GROUP BY a.resultado HAVING COUNT(a.resultado)=((SELECT MAX(c.total) FROM (SELECT COUNT(b.resultado) as total FROM partido b GROUP BY b.resultado)) WHERE a.equipo = 'P.E. Valencia'

Asi esta mejor :)
 
Última edición:

josedvd123

Gamma
Social Media
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
13 Feb 2013
Mensajes
209
Creo que te faltaria meter un WHERE a.equipo = 'P.E. Valencia' para dejar solo los resultados de ese equipo.

P.D: Tienes un lio de sentencia en SQL, intenta ser más claro en sentencias de ese tipo.... Te faltan parentesis para que se aclare mas....

SELECT a.resultado FROM partido a GROUP BY a.resultado HAVING COUNT(a.resultado)=((SELECT MAX(c.total) FROM (SELECT COUNT(b.resultado) as total FROM partido b GROUP BY b.resultado)) WHERE a.equipo = 'P.E. Valencia'

Asi esta mejor :)
Te falto poner una "c" :p

Pero igualmente con el código así:
SELECT a.resultado FROM partido a GROUP BY a.resultado HAVING COUNT(a.resultado)=((SELECT MAX(c.total) FROM (SELECT COUNT(b.resultado) as total FROM partido b GROUP BY b.resultado)c) WHERE a.equipo = 'P.E. Valencia';
la columna equipo solo muestra números, los nombres de los equipos están en otra tabla.

Pero gracias por intentar ayudarme :encouragement:

---------- Post agregado el 05-may-2014 hora: 19:02 ----------

Después de todo el día mirando ese ejercicio lo he resuelto:

SELECT a.resultado FROM partido a WHERE a.local =(SELECT id_equipo FROM equipo WHERE nombre='P.E. Valenacia') GROUP BY a.resultado HAVING COUNT(a.resultado)=(SELECT MAX(c.total) FROM (SELECT COUNT(b.resultado) as total FROM partido b GROUP BY b.resultado)c);

:encouragement::encouragement:
 

SrSagek

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 May 2013
Mensajes
136
Muy bien hecho. Claro, lo has hecho genial, si los nombres de los equipos estan en otra tabla, pues a combinar tablas como lo has hecho, o haciendo joins.

Enhorabuena!! Así se aprende!!
 
Arriba