Skip to main content

Field note

Что такое агрегатные функции ?

PHPLearnRefresh

Что такое агрегатные функции ? Спросят с вероятностью 20%

Агрегатные функции в контексте управления базами данных и SQL — это специальные функции, которые выполняют вычисление над набором значений и возвращают единственный результат. Они часто используются для выполнения математических, статистических и других операций с данными в запросах для анализа и обобщения информации из множества записей.

Основные агрегатные функции:

1️⃣COUNT(): Подсчитывает количество элементов в наборе. Эта функция может использоваться для подсчета количества строк в таблице или количества строк, соответствующих определенным критериям. ✅Пример: SELECT COUNT(*) FROM users; — подсчитывает количество всех строк в таблице users.

2️⃣SUM(): Суммирует числовые значения столбца. Используется для получения общей суммы числовых данных. ✅Пример: SELECT SUM(salary) FROM employees; — считает общую сумму зарплат всех сотрудников.

3️⃣AVG(): Вычисляет среднее значение числовых данных. Эта функция полезна для нахождения среднего значения определенного столбца. ✅Пример: SELECT AVG(price) FROM products; — рассчитывает среднюю цену продукта.

4️⃣MIN() и MAX(): Возвращают минимальное и максимальное значения в столбце соответственно. Эти функции используются для нахождения наименьших и наибольших значений. ✅Пример: SELECT MIN(age), MAX(age) FROM users; — находит минимальный и максимальный возраст среди пользователей.

5️⃣GROUP_CONCAT() (в MySQL) / STRING_AGG() (в PostgreSQL): Склеивают строки из столбца, объединяя их в одну строку с разделителем. ✅Пример (MySQL): SELECT GROUP_CONCAT(username SEPARATOR ', ') FROM users WHERE city = 'New York'; — объединяет имена пользователей из Нью-Йорка через запятую.

Агрегатные функции часто используются в сочетании с оператором GROUP BY, который позволяет группировать строки по одному или нескольким столбцам и применять агрегатные функции к каждой группе отдельно. Это позволяет выполнить более детальный анализ данных. SELECT department, AVG(salary) AS average_salary FROM employees GROUP BY department; Этот запрос вычисляет среднюю зарплату по каждому отделу в компании.

Агрегатные функции — мощный инструмент для работы с большими объемами данных, позволяя быстро получать обобщенную информацию о данных, что особенно полезно для отчетов и аналитики.