Использование предложения GROUP BY в SQL: объяснение с примерами

В SQL предложение GROUP BY используется для группировки строк в наборе результатов на основе одного или нескольких столбцов. Он часто используется вместе с агрегатными функциями, такими как SUM, COUNT, AVG и т. д., для выполнения вычислений над группами данных. Вот несколько способов использования предложения GROUP BY в SQL:

  1. Базовый GROUP BY. Вы можете использовать предложение GROUP BY для группировки строк по одному или нескольким столбцам. Например:

    SELECT column1, column2, aggregate_function(column3)
    FROM table_name
    GROUP BY column1, column2;
  2. GROUP BY с HAVING: Предложение HAVING позволяет фильтровать сгруппированные данные на основе условия. Например:

    SELECT column1, column2, aggregate_function(column3)
    FROM table_name
    GROUP BY column1, column2
    HAVING condition;
  3. GROUP BY с предложением ORDER BY. Вы можете комбинировать предложение GROUP BY с предложением ORDER BY для сортировки сгруппированных данных. Например:

    SELECT column1, column2, aggregate_function(column3)
    FROM table_name
    GROUP BY column1, column2
    ORDER BY column1;
  4. GROUP BY с JOIN: вы можете использовать предложение GROUP BY с операциями соединения для группировки данных из нескольких таблиц. Например:

    SELECT t1.column1, t2.column2, aggregate_function(t1.column3)
    FROM table1 t1
    JOIN table2 t2 ON t1.columnX = t2.columnY
    GROUP BY t1.column1, t2.column2;
  5. GROUP BY с ROLLUP: модификатор ROLLUP генерирует набор результатов, представляющий многоуровневую агрегацию. Он создает набор результатов, включающий промежуточные и общие итоги. Например:

    SELECT column1, column2, aggregate_function(column3)
    FROM table_name
    GROUP BY ROLLUP (column1, column2);
  6. GROUP BY с CUBE: модификатор CUBE генерирует набор результатов, который представляет все возможные комбинации наборов группировки. Он создает набор результатов, включающий промежуточные итоги, общие итоги и все возможные комбинации сгруппированных столбцов. Например:

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