Si quisiera saber cuántas entradas tengo donde product_price está dentro del rango 500-1000. ¿Cómo puedo hacer eso?MySql: ¿Cuenta las filas en el rango de precio?
Gracias!
Si quisiera saber cuántas entradas tengo donde product_price está dentro del rango 500-1000. ¿Cómo puedo hacer eso?MySql: ¿Cuenta las filas en el rango de precio?
Gracias!
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..)
SELECT COUNT(*) FROM the_table WHERE price BETWEEN 10 AND 20;
Uso BETWEEN
:
SELECT count(*) FROM table WHERE price BETWEEN 500 AND 1000
+1. Excelente explicación – James