PostgreSQL GROUP BY
Предложение GROUP BY
Предложение group by используется для разделения строк в таблице на более мелкие группы с одинаковыми значениями в указанных столбцах. Это предложение используется с инструкцией SELECT для объединения группы строк на основе значений или определенного столбца или выражения. Агрегатные функции используются для возврата сводной информации по каждой группе.
Предложение WHERE используется для условного извлечения строк из таблицы, следовательно, его нельзя применить к сгруппированному результату.
Синтаксис:
ВЫБЕРИТЕ [DISTINCT] <column_list> | <Выражение> ОТ <таблицы> [, <таблица>] [ГДЕ <условие>] GROUP BY <столбец | выражение> [ИМЕЕТ <условие>] <Условие>
параметры
название | Описание |
---|---|
column_list | Наименование столбцов |
Таблица | Название таблицы |
DISTINCT | Этот пункт не является обязательным. Это указывает на уникальность. |
выражение | Это могут быть аргументы или заявления и т. Д. |
состояние | Это критерии запроса. |
PostgreSQL GROUP BY пример1
Образец таблицы
Если мы хотим получить номера отделов и количество сотрудников в каждом отделе в таблице сотрудников , можно использовать следующий SQL.
SQL
Код:
SELECT deptno, COUNT(*)
FROM employee
GROUP BY deptno;
Выход:
PostgreSQL GROUP BY пример2
Если мы хотим получить номер отдела и общую зарплату, подлежащую выплате для каждого отдела в таблице сотрудников , можно использовать следующий SQL.
SQL
Код:
SELECT deptno "Department No",
SUM(salary) "Salary Payable"
FROM employee
GROUP BY deptno;
Выход:
PostgreSQL GROUP BY и ORDER BY
Если мы хотим перечислить назначение и количество сотрудников в каждом назначении и показать результат в порядке возрастания числа сотрудников из таблицы сотрудников , можно использовать следующий SQL. Порядок по умолчанию ORDER BY возрастает.
SQL
Код:
SELECT designame "Designation",
COUNT(*) "Number of Employees"
FROM employee
GROUP BY designame
ORDER BY COUNT(*);
Выход:
PostgreSQL GROUP BY и ORDER BY в порядке убывания
Если мы хотим перечислить назначение и количество сотрудников в каждом назначении и показать результат в порядке убывания количества сотрудников из таблицы сотрудников , можно использовать следующий SQL.
SQL
Код:
SELECT designame "Designation",
COUNT(*) "Number of Employees"
FROM employee
GROUP BY designame
ORDER BY 2 DESC;
Выход:
объяснение
ORDER BY в вышеприведенном примере, за которым следует 2 DESC. Здесь 2, т. Е. [COUNT (*)] указывает номер столбца, в котором упорядочивается результат, а DESC указывает порядок по убыванию.
PostgreSQL GROUP BY с MAX, MIN, SUM, AVG
Если мы хотим перечислить общую зарплату, максимальную и минимальную зарплату и среднюю зарплату сотрудников в соответствии с обозначением из таблицы сотрудников , можно использовать следующий SQL.
SQL
Код:
SELECT designame "Desig.",
SUM(salary) "Salary",
AVG(salary) "Avg. Salary",
MAX(salary) "Max. Salary",
MIN(salary) "Min. Salary"
FROM employee
GROUP BY designame;
Выход:
PostgreSQL GROUP BY с ГДЕ
Если мы хотим перечислить среднюю зарплату для каждого назначения, исключая «PRESIDENT», можно использовать следующий SQL.
SQL
Код:
SELECT designame "Designation",
AVG(salary) "Average Salary"
FROM employee
WHERE designame <>'PRESIDENT'
GROUP BY designame;
Выход:
Предыдущая: DISTINCT
Далее: ЗАКАЗАТЬ ПО
Новый контент: Composer: менеджер зависимостей для PHP , R программирования