Este sitio tiene como finalidad acoger y ayudar a los múltiples usuarios que lo visitan, hoy las consultas han estado dirigidas en el ámbito de las bases de datos, más especificamente, las sentencias SQL.
Así que comenzamos con una de las preguntas más frecuentes que se ha escuchado hoy: ¿Cómo puedo obtener el valor más grande de un conjunto de datos?.
Para explicar como hacer esto se realizará un pequeño ejemplo que fue probado en postgresql .
Primero se creo una tabla llamada producto (por estándar en el depto. se utilizan nombres en singular) con el siguiente script:
CREATE TABLE producto(
codigo int4 NOT NULL,
cantidad int4 NOT NULL);
INSERT INTO producto(codigo, cantidad) VALUES (10, 30);
INSERT INTO producto(codigo, cantidad) VALUES (20, 50);
INSERT INTO producto(codigo, cantidad) VALUES (30, 39);
INSERT INTO producto(codigo, cantidad) VALUES (10, 40);
INSERT INTO producto(codigo, cantidad) VALUES (10, 70);
INSERT INTO producto(codigo, cantidad) VALUES (10, 10);
INSERT INTO producto(codigo, cantidad) VALUES (20, 35);
INSERT INTO producto(codigo, cantidad) VALUES (30, 34);
INSERT INTO producto(codigo, cantidad) VALUES (10, 37);
Si ejecutamos el comando SELECT * FROM producto; se obtiene:
codigo | cantidad
--------+----------
10 | 30
20 | 50
30 | 39
10 | 40
10 | 70
10 | 10
20 | 35
30 | 34
10 | 37
(9 rows)
En este punto nos podemos hacer la pregunta: ¿Cual es el producto que más se ha vendido y cuanto se vendió (cantidad)?
RESPUESTA PROPUESTA:
a)
SELECT p.codigo, sum(p.cantidad)
FROM producto p
GROUP BY p.codigo
HAVING sum(p.cantidad) >= (SELECT max(maximo.resultado)
FROM (SELECT sum(pp.cantidad) as resultado
FROM producto pp
GROUP BY pp.codigo) maximo);
b)
SELECT p.codigo, sum(p.cantidad)
FROM producto p
GROUP BY p.codigo
HAVING sum(p.cantidad) >= ALL (SELECT sum(pp.cantidad) as resultado
FROM producto pp
GROUP BY pp.codigo);
El resultado obtenido es:
codigo | sum
--------+-----
10 | 187
(1 row)
Esperamos que les sea de utilidad, como la respuesta no es única esperamos comentarios. Saludos.
Loreto Telgie, Juan Bekios
Comentarios