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

Consulta sql

Estas en el tema de Consulta sql en el foro de Bases de Datos General en Foros del Web. Hola tengo una tabla con los atributos, IDSocio IDeporte IDClub como hago para listar los socios que participaron en mas de 10 deportes y en ...
  #1 (permalink)  
Antiguo 17/11/2008, 17:47
 
Fecha de Ingreso: octubre-2006
Mensajes: 96
Antigüedad: 17 años, 6 meses
Puntos: 0
De acuerdo Consulta sql

Hola tengo una tabla con los atributos, IDSocio IDeporte IDClub

como hago para listar los socios que participaron en mas de 10 deportes y en mas de 5 clubes? Gracias
  #2 (permalink)  
Antiguo 18/11/2008, 02:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta sql

No lo he usado nunca pero mira lo que dice el manual de Mysql


Cita:
COUNT(DISTINCT expr,[expr...])

Returns a count of the number of different non-NULL values.

COUNT(DISTINCT) returns 0 if there were no matching rows.

mysql> SELECT COUNT(DISTINCT results) FROM student;
In MySQL, you can obtain the number of distinct expression combinations that do not contain NULL by giving a list of expressions. In standard SQL, you would have to do a concatenation of all expressions inside COUNT(DISTINCT ...).
Con SQL standar...???...

Código sql:
Ver original
  1. SELECT `Socio`, `Clubs`, `Deportes`
  2.    FROM
  3.       (SELECT `subClubs`.`IDSocio` AS `Socio`, COUNT(*) AS `Clubs`
  4.          FROM (SELECT DISTINCT `tuTabla`.`IDSocio`, `tuTabla`.`IDClub` AS `Club`
  5.                         FROM `tuTabla`) AS `subClubs`
  6.          GROUP BY `subClubs`.`IDSocio`
  7.          HAVING COUNT(*)>5) AS SocioClub
  8.    INNER JOIN
  9.       (SELECT `subDeportes`.`IDSocio` AS `Socio`, COUNT(*) AS `Deportes`
  10.           FROM (SELECT DISTINCT `tuTabla`.`IDSocio`, `tuTabla`.`IDDeporte` AS `Deporte`
  11.                        FROM `tuTabla`) AS `subDeportes`
  12.           GROUP BY `subDeportes`.`IDSocio`
  13.           HAVING COUNT(*)>5) AS SocioDep
  14.    ON  SocioClub.Socio=SocioDep.Socio;

Quim

Última edición por quimfv; 18/11/2008 a las 02:36
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 09:16.