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

Pregunta básica de consulta SQL

Estas en el tema de Pregunta básica de consulta SQL en el foro de Bases de Datos General en Foros del Web. Quizás estoy demasiado dormido pero no se me ocurre cómo resolverlo. (esta pregunta no tiene nada que ver con php, pero no encontré un subforo ...
  #1 (permalink)  
Antiguo 04/12/2009, 13:25
 
Fecha de Ingreso: febrero-2009
Ubicación: Buenos Aires
Mensajes: 42
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta básica de consulta SQL

Quizás estoy demasiado dormido pero no se me ocurre cómo resolverlo.
(esta pregunta no tiene nada que ver con php, pero no encontré un subforo adecuado para consultas sql)

Tengo una tabla rubros_alumnos, en la cual varios alumnos pueden estar asignados a varios rubros. Hago la siguiente llamada:

select count(alumnos) as cantidad from rubros_alumnos where rubro = 36 or rubro = 45

Digamos que tengo 2 alumnos en el rubro 36 y 2 en el rubro 45, siendo 1 de los 2 alumnos común a las dos tablas. El resultado me devuelve 4. ¿Cómo hago para que me devuelva 3? (que no me cuente al mismo dos veces)

Muchas gracias
  #2 (permalink)  
Antiguo 04/12/2009, 13:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Pregunta básica de consulta SQL

Bueno el foro que debe ir es base de datos, pero contestando lo que deseas saber, puedes usar GROUP BY para agrupar o DISTINCT logres lo que quieres.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/12/2009, 17:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Pregunta básica de consulta SQL

Como te ha sugerido abimaelrc, con distinct dentro del count
select count(distinct alumnos) as cantidad from rubros_alumnos where rubro = 36 or rubro = 45

pruébalo.
  #4 (permalink)  
Antiguo 04/12/2009, 17:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Pregunta básica de consulta SQL

Código SQL:
Ver original
  1. SELECT COUNT(DISTINCT alumnos) cantidad
  2. FROM rubros_alumnos
  3. WHERE rubro IN (36, 45);

o bien

Código SQL:
Ver original
  1. SELECT COUNT(DISTINCT alumnos) cantidad
  2. FROM rubros_alumnos
  3. WHERE rubro = 36 OR rubro = 45;

Cualquiera de las dos debería funcionar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:27.