Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQL: preguntas de práctica de la función COUNT
Si quiere poner a prueba sus habilidades con la función SQL COUNT, pruebe algunos de nuestros ejercicios.
Estos ejercicios le permiten probar sus habilidades usando la función COUNT. Recibirá preguntas que necesitan ser resueltas. Después de cada ejercicio, proporcionamos soluciones para que puedas comprobar tus respuestas.
¡Empecemos!
Ejercicio 1:
Calcule la cantidad de productos con category_id 50 de la tabla de productos completada con los siguientes datos.
CREATE TABLE products ( product_id int NOT NULL, product_name char(50) NOT NULL, category_id int, CONSTRAINT products_pk PRIMARY KEY (product_id) ); INSERT INTO products (product_id, product_name, category_id) VALUES (1,'Pear',50); INSERT INTO products (product_id, product_name, category_id) VALUES (2,'Banana',50); INSERT INTO products (product_id, product_name, category_id) VALUES (3,'Orange',50); INSERT INTO products (product_id, product_name, category_id) VALUES (4,'Apple',50); INSERT INTO products (product_id, product_name, category_id) VALUES (5,'Bread',75); INSERT INTO products (product_id, product_name, category_id) VALUES (6,'Sliced Ham',25); INSERT INTO products (product_id, product_name, category_id) VALUES (7,'Kleenex',null);
Solución al Ejercicio #1:
Aunque ineficaz en términos de rendimiento, la siguiente instrucción SQL SELECT devolverá la cantidad de productos con category_id 50.
SELECT COUNT(*) AS total FROM products WHERE category_id = 50;
Estos son los resultados que deberías ver:
todo |
---|
4 |
Una implementación más eficiente de la misma solución sería la siguiente instrucción SELECT:
SELECT COUNT(1) AS total FROM products WHERE category_id = 50;
Ahora, en lugar de recuperar todos los campos de la tabla (es decir: número_empleado, nombre_empleado, salario), la función SQL COUNT recupera el valor 1 siempre que se cumpla la condición. Por lo tanto, se incrementa el rendimiento de la instrucción SQL.
Ejercicio de práctica #2:
Calcule el número de valores de ciudades distintas en la tabla de proveedores en función de la tabla de proveedores completada con los siguientes datos:
CREATE TABLE suppliers ( supplier_id int NOT NULL, supplier_name char(50) NOT NULL, city char(50), state char(50), CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id) ); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (100, 'Microsoft', 'Redmond', 'Washington'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (200, 'Google', 'Mountain View', 'California'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (300, 'Oracle', 'Redwood City', 'California'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (400, 'Kimberly-Clark', 'Irving', 'Texas'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (500, 'Tyson Foods', 'Springdale', 'Arkansas'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (600, 'SC Johnson', 'Racine', 'Wisconsin'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (700, 'Dole Food Company', 'Westlake Village', 'California'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (800, 'Flowers Foods', 'Thomasville', 'Georgia'); INSERT INTO suppliers (supplier_id, supplier_name, city, state) VALUES (900, 'Electronic Arts', 'Redwood City', 'California');
Solución al ejercicio #2:
La siguiente declaración SELECT devolverá el número de ciudades distintas en la tabla de proveedores:
SELECT COUNT(DISTINCT city) AS total FROM suppliers;
Estos son los resultados que deberías ver:
todo |
---|
8 |
Ejercicio de práctica #3:
Calcule el número de pedidos para cada order_date en la tabla de pedidos en función de la tabla de pedidos completada con los siguientes datos:
CREATE TABLE orders ( order_id int NOT NULL, customer_id int, order_date date, CONSTRAINT orders_pk PRIMARY KEY (order_id) ); INSERT INTO orders (order_id, customer_id, order_date) VALUES (1,7000,'2016/04/18'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (2,5000,'2016/04/18'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (3,8000,'2016/04/19'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (4,4000,'2016/04/20'); INSERT INTO orders (order_id, customer_id, order_date) VALUES (5,null,'2016/05/01');
Solución al Ejercicio #3:
La siguiente instrucción SELECT devolverá el número de pedidos para cada order_date en la tabla de pedidos:
SELECT order_date, COUNT(*) AS total FROM orders GROUP BY order_date;
Estos son los resultados que deberías ver:
fecha de orden | todo |
---|---|
2016/04/18 | 2 |
2016/04/19 | 1 |
2016/04/20 | 1 |
2016/05/01 | 1 |
Una implementación más eficiente de la misma solución sería la siguiente instrucción SELECT:
SELECT order_date, COUNT(1) AS total FROM orders GROUP BY order_date;