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

duda en pequeño ejercicio de mysql

Estas en el tema de duda en pequeño ejercicio de mysql en el foro de Mysql en Foros del Web. hola com estan? quisiera que me ayudaran con una duda q tengo es la siguiente: me preguntan como obtener el codigo de cada equipo y ...
  #1 (permalink)  
Antiguo 05/01/2009, 08:00
 
Fecha de Ingreso: enero-2009
Mensajes: 178
Antigüedad: 15 años, 4 meses
Puntos: 2
duda en pequeño ejercicio de mysql

hola com estan? quisiera que me ayudaran con una duda q tengo es la siguiente:
me preguntan como

obtener el codigo de cada equipo y el peso promedio de sus ciclistas con mas de 75 kilos de aquellos equipos que contengan mas de 3 jugadores de 75 kilos
donde tengo:

ciclista
codigociclista
nombreciclista
peso
codigoequipo

equipo
codigoequipo

he tratado haciendo group by y count y avg pero no me sale gracias se agradecen ideas
  #2 (permalink)  
Antiguo 05/01/2009, 14:11
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: duda en pequeño ejercicio de mysql

No la he probado me la acabe de inventar pero me suena que le funcionarioa algo como esto:


Código:
select codigoequipo,count(codigociclista),avg(peso) from ciclista where peso>75 group by codigoequipo having count(codigociclista) > 3;
  #3 (permalink)  
Antiguo 05/01/2009, 14:38
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: duda en pequeño ejercicio de mysql

mmm, interesante, no entiendo bien, lo que quieres hacer, si lo que deseas es obtener un resultset, con valores de 2 tablas diferentes. puedes intentar lo sig: select equipo.codigoequipo,ciclista.peso from equipo,ciclista.
y al final de la consulta puedes agregar un were, orderby, etc, segun sea tu caso.

espero te sirva.
  #4 (permalink)  
Antiguo 05/01/2009, 14:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: duda en pequeño ejercicio de mysql

Yo te propongo esta:
Código sql:
Ver original
  1. SELECT c.codigoequipo, AVG( c.peso ) media
  2. FROM `ciclista` c
  3. WHERE c.peso >75
  4. AND c.codigoequipo
  5. IN (
  6.  
  7. SELECT c2.codigoequipo
  8. FROM `ciclista` c2
  9. WHERE c2.peso >75
  10. GROUP BY c2.codigoequipo
  11. HAVING COUNT( c2.codigociclista) >=3
  12. )
  13. GROUP BY c.codigoequipo

Primero busco los equipos que tienen tres ciclistas o más que pesan más de 75 kilos.
SELECT c2.codigoequipo
FROM `ciclista` c2
WHERE c2.peso >75
GROUP BY c2.codigoequipo
HAVING count( c2.codigociclista ) >=3

Luego hago una selección buscando esos equipos y sus ciclistas que pesan más de 75 kilos y saco la media.
SELECT c.codigoequipo, AVG( c.peso ) media
FROM ciclista c
WHERE c.peso >75
AND c.codigoequipo IN (...) GROUP BY c.codigoequipo

Última edición por jurena; 05/01/2009 a las 14:48
  #5 (permalink)  
Antiguo 05/01/2009, 18:39
 
Fecha de Ingreso: enero-2009
Mensajes: 178
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: duda en pequeño ejercicio de mysql

oye en la tarde resolvi mi duda y HELACER dio exactamente con la mia solo q debes de colocar el select y funcciona perfecto gracias a todos , son muy buenos besos

select codigoequipo,count(codigociclista),avg(peso) from ciclista where peso>75 group by codigoequipo having SELECT count(codigociclista) >= 3;
  #6 (permalink)  
Antiguo 06/01/2009, 01:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: duda en pequeño ejercicio de mysql

Minniek,
creo que la mejor consulta es la de helacer

Código sql:
Ver original
  1. SELECT codigoequipo,COUNT(codigociclista),avg(peso) FROM ciclista
  2.  WHERE peso>75 GROUP BY codigoequipo
  3. HAVING COUNT(codigociclista) >= 3
, porque funciona y no tiene subconsulta. Lo hace todo en uno. No es necesario añadir el select.

Última edición por jurena; 06/01/2009 a las 11:53
  #7 (permalink)  
Antiguo 25/01/2009, 20:03
 
Fecha de Ingreso: enero-2009
Mensajes: 178
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: duda en pequeño ejercicio de mysql

el select segundo es xq lo pide mysql, xq si lo pongo como tu me da error, y es exactamente lo mismo
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 14:05.