PostgreSQL ROLLUP pertenece a la cláusula GROUP BY que proporciona un atajo para definir múltiples conjuntos de agrupación . Múltiples columnas agrupadas forman un conjunto de grupo.
A diferencia de la subcláusula CUBE , ROLLUP no genera todos los conjuntos de agrupación posibles en función de las columnas especificadas. Simplemente hace un subconjunto de esos. El ROLLUP presupone una jerarquía entre las columnas de entrada y produce todos los conjuntos de agrupación que tienen sentido solo si se considera la jerarquía. Es por eso que ROLLUP generalmente se usa para generar los subtotales y el total general para los informes.
Sintaxis:
SELECT column1, column2, column3, aggregate(column4) FROM table_name GROUP BY ROLLUP (column1, column2, column3);
Para comprender mejor el concepto, creemos una nueva tabla y pasemos a los ejemplos.
Para crear una tabla de muestra, use el siguiente comando:
CREATE TABLE geeksforgeeks_courses( course_name VARCHAR NOT NULL, segment VARCHAR NOT NULL, quantity INT NOT NULL, PRIMARY KEY (course_name, segment) );
Ahora inserte algunos datos en él usando el siguiente comando:
INSERT INTO geeksforgeeks_courses(course_name, segment, quantity) VALUES ('Data Structure in Python', 'Premium', 100), ('Algorithm Design in Python', 'Basic', 200), ('Data Structure in Java', 'Premium', 100), ('Algorithm Design in Java', 'Basic', 300);
Ahora que nuestra mesa está puesta, veamos ejemplos.
Ejemplo 1:
la siguiente consulta utiliza la subcláusula ROLLUP para encontrar la cantidad de productos vendidos por nombre_del_curso (subtotal) y por todos los nombres y segmentos del curso (total) de la siguiente manera:
SELECT course_name, segment, SUM (quantity) FROM geeksforgeeks_courses GROUP BY ROLLUP (course_name, segment) ORDER BY course_name, segment;
Producción:
Ejemplo 2:
La siguiente instrucción realiza un ROLL UP parcial de la siguiente manera:
SELECT segment, course_name, SUM (quantity) FROM geeksforgeeks_courses GROUP BY segment, ROLLUP (course_name) ORDER BY segment, course_name;
Producción:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA