PostgreSQL – CUBO

En PostgreSQL , CUBE se usa para generar múltiples conjuntos de agrupación a la vez. Es una subclase de la cláusula GROUP BY y resulta útil al generar múltiples conjuntos de agrupación. Un conjunto de agrupación es un conjunto de columnas que desea agrupar.

Sintaxis:

SELECT
    column1,
    column2,
    column3,
    aggregate (column4)
FROM
    table_name
GROUP BY
    CUBE (column1, column2, column3);

Analicemos la sintaxis anterior:

  • Primero, defina la subcláusula CUBE en la cláusula GROUP BY de la instrucción SELECT .
  • Luego, en la lista de selección, indique las columnas que desea analizar y agregue las expresiones de la función de agregación.
  • Por último, en la cláusula GROUP BY, establezca las columnas de dimensión entre paréntesis de la subcláusula CUBE.

La consulta produce todos los conjuntos de agrupación factibles en función de las columnas de dimensión establecidas en CUBE. La subcláusula CUBE es una forma breve de definir varios conjuntos de agrupación. Normalmente, si el número de columnas establecido en el CUBO es n, entonces genera 2n combinaciones.
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 CUBE para generar varios conjuntos de agrupación de la siguiente manera:

SELECT
    course_name,
    segment,
    SUM (quantity)
FROM
    geeksforgeeks_courses
GROUP BY
    CUBE (course_name, segment)
ORDER BY
    course_name,
    segment;

Producción:

Ejemplo 2:
la siguiente consulta realiza un CUBO parcial de la siguiente manera:

SELECT
    course_name,
    segment,
    SUM (quantity)
FROM
    geeksforgeeks_courses
GROUP BY
    course_name,
    CUBE (segment)
ORDER BY
    course_name,
    segment;

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *