2009-12-15 17 views

Respuesta

18

supongo que quiere decir esto:

SELECT COUNT(*) FROM products WHERE product_price >= 500 AND product_price <= 1000 

Pero no se ha especificado si el intervalo es abierto, cerrado o semi-cerrado. Al usar intervalos abiertos o cerrados (lo anterior es un intervalo cerrado), debe tener cuidado de no perder o contar dos veces los elementos en el límite al tabular todos los intervalos.

Dependiendo de lo que está haciendo, esto podría ser mejor para usted:

SELECT COUNT(*) FROM products WHERE product_price >= 500 AND product_price < 1000 

Si desea obtener todos los intervalos, se puede hacer eso en una declaración demasiado:

SELECT 
SUM(CASE WHEN product_price < 500 THEN 1 ELSE 0 END) AS price_range_1, 
SUM(CASE WHEN product_price >= 500 AND product_price < 1000 THEN 1 ELSE 0 END) AS price_range_2, 
SUM(CASE WHEN product_price >= 1000 THEN 1 ELSE 0 END) AS price_range_3 
FROM products 

Alternativamente (y mejor en mi opinión), almacene sus rangos de intervalo en otra tabla y únase a ella.

(Muchas otras personas han señalado la palabra clave BETWEEN En caso de estar interesado, que es equivalente a la versión intervalo cerrado, es decir, la primera versión..)

+0

+1. Excelente explicación – James

3
SELECT COUNT(*) FROM the_table WHERE price BETWEEN 10 AND 20; 
1

Uso BETWEEN:

SELECT count(*) FROM table WHERE price BETWEEN 500 AND 1000 
Cuestiones relacionadas