СУБД MySQL оснащена множеством функций, предназначенных непосредственно для получения суммарных показателей данных в таблицах. Эти функции чаще всего используются в запросах SELECT, содержащих предложения GROUP BY, но они могут использоваться и при реализации запросов без группировки. Перечень этих функций представлен в табл. 7.2.
Агрегатные функции
Агрегатные функции
Функция VARIANCE() возвращает статистическую дисперсию значений указанного результирующего набора, функция STD() - стандартное отклонение этих значений.
Агрегатные функции
Функция GROUP_CONCAT() объединяет все значения, входящие в определенную группу (которая задается предложением GROUP BY), в одну строку. Рассмотрим пример таблицы, распределяющей пользователей по группам следующим образом.
Агрегатные функции
Для того чтобы получить альтернативное, более понятное представление этой же информации, можно воспользоваться функцией GROUP_CONCAT() .
Агрегатные функции
Для того чтобы убедиться в том, насколько полезными могут оказаться эти функции, рассмотрим следующий пример таблицы, содержащей список студентов и их оценки по соответствующим предметам.
Агрегатные функции
А теперь для получения общей информации о записях, хранящихся в таблице, можно воспользоваться агрегатными функциями. Например, количество студентов, сдавших экзамены, можно узнать с помощью функции COUNT() .
Агрегатные функции
Агрегатные функции
Агрегатные функции
С помощью функций LTRIM() и RTRIM() можно добиться результата, обратного ре­зультату функций LPAD() и RPAD(). Эти функции отсекают пробелы в начале и в конце строки.
Агрегатные функции
Альтернативой этим функциям может служить функция TRIM() , позволяющая задавать удаляемый из строки символ и место, где будет выполнено усечение: в начале, в конце или с обеих сторон строки.
Агрегатные функции

С помощью функций LEFT() и RIGHT() из строки можно выделить определенные фрагменты:
Агрегатные функции

Вполне возможно объединить строки с определенным разделителем. Для этого воспользуемся подобной (хотя и не совсем идентичной) функцией CONCAT_WS() , позволяющей задавать в первом аргументе разделитель строки.
Агрегатные функции

С помощью функции LOCATE() можно проверить, содержит ли строка определенную подстроку. Эта функция позволяет определить, где впервые появляется данная подстрока в указанной строке (если таковая имеется).
Агрегатные функции

Для определения наличия определенного строкового значения в большой строке, можно использовать функцию FIND_IN_SET() . Набор строк, передаваемый вторым аргументом функции FIND_IN_SET() , представляется в виде строк, разделенных запятыми. Функция позволяет определить местоположение найденного значения, если такое значение существует. Нумерация начинается с 1.
Агрегатные функции

Сравнение двух строк производится с помощью функции STRCMP() , принимающей в качестве аргументов две строки и возвращающей 0, если они подобны, 1, если первая больше второй, и -1 в противном случае. Сравнение строк не зависит от регистра представления этих строк, если специально не указано ключевое слово BINARY или сравниваемые значения не представлены типом BLOB.
Агрегатные функции
Агрегатные функции
Агрегатные функции