Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/05/2008, 01:14
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
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