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

Ayuda con Count(*)

Estas en el tema de Ayuda con Count(*) en el foro de Bases de Datos General en Foros del Web. Hola, tengo un problema y quisiera saber si alguien me orienta un poco tengo un valor en la base de datos, el cual tengo que ...
  #1 (permalink)  
Antiguo 23/05/2008, 14:54
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 9 meses
Puntos: 6
Ayuda con Count(*)

Hola, tengo un problema y quisiera saber si alguien me orienta un poco

tengo un valor en la base de datos, el cual tengo que comparar si enta entre dos valores, pero tengo que compararlo 4 veces de forma:

entre 5 y 12 o entre 12 y 20 o entre 20 y 27 o superior a 27

entonces....luego tengo que hacer un Count() con mysql (diria yo) de los que estan en cada rango y poner el resultado del Count en la su columna correspondiente al desplegarlo en html.....

Espero no estar muy enrredado..

Saludos
__________________
www.dataautos.com
  #2 (permalink)  
Antiguo 23/05/2008, 15:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Ayuda con Count(*)

Hola asinox,

Puedes hacer diferentes consultas:
Código:
SELECT COUNT(*) FROM `tabla` WHERE `valor` BETWEEN 5 AND 12
y así por cada rango.

Tema trasladado a Bases de Datos.

Saludos.
  #3 (permalink)  
Antiguo 24/05/2008, 01:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Ayuda con Count(*)

La mejor forma:
SELECT SUM( if( valor
BETWEEN 5
AND 12 , 1, 0 ) ) AS entre5y12, SUM( if( valor
BETWEEN 12
AND 20 , 1, 0 ) ) AS entre12y20, SUM( if( valor
BETWEEN 20
AND 27 , 1, 0 ) ) AS entre20y27, SUM( if( valor >27, 1, 0 ) ) AS mayorque27
FROM `tabla`

otra, pero, en mi opinión, peor en principio, porque realiza varias uniones y presenta las etiquetas como contenido de campo, aunque habría que ver con los datos y con un índice aplicado:
(
SELECT "entre 5 y 12" AS etiqueta, COUNT( * ) AS dato
FROM `tabla`
WHERE valor
BETWEEN 5
AND 12
)
UNION ALL (

SELECT "entre 12 y 20", COUNT( * )
FROM `tabla`
WHERE valor
BETWEEN 12
AND 20
)
UNION ALL (

SELECT "entre 20 y 27", COUNT( * )
FROM `tabla`
WHERE valor
BETWEEN 20
AND 27
)
UNION ALL (

SELECT "mayor que 27", COUNT( * )
FROM `tabla`
WHERE valor >27
)

Última edición por jurena; 24/05/2008 a las 02:32
  #4 (permalink)  
Antiguo 24/05/2008, 07:35
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 9 meses
Puntos: 6
Respuesta: Ayuda con Count(*)

Gracias por esa tremenda ayuda, tratare de aplicarla.

Saludos
__________________
www.dataautos.com
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:18.