|
|
@@ -153,6 +153,44 @@ Shared room | 40
|
|
|
* `COUNT(поле_таблицы | *)` - Возвращает количество записей
|
|
|
* `MIN(поле_таблицы)` - Возвращает минимальное значение
|
|
|
* `MAX(поле_таблицы)` - Возвращает максимальное значение
|
|
|
+* `GROUP_CONCAT` - Возвращает строку, содержащую значения поля в группе, разделенные запятой (или другим разделителем)
|
|
|
+
|
|
|
+ Полный синтаксис функции:
|
|
|
+
|
|
|
+ ```
|
|
|
+ GROUP_CONCAT (
|
|
|
+ [DISTINCT] expr
|
|
|
+ [
|
|
|
+ ORDER BY {col_name | expr} [ASC | DESC]
|
|
|
+ [,col_name | expr] ...
|
|
|
+ ]
|
|
|
+ [SEPARATOR str_val]
|
|
|
+ )
|
|
|
+ ```
|
|
|
+
|
|
|
+ ,где:
|
|
|
+
|
|
|
+ - `DISTINCT expr` - выражение (поле или функция)
|
|
|
+ - `ORDER BY` - не обязательная сортировка значений
|
|
|
+ - `SEPARATOR <символ - разделитель значений>` - не обязательный разделитель (по-умолчанию запятая)
|
|
|
+
|
|
|
+ Например:
|
|
|
+
|
|
|
+ ```sql
|
|
|
+ SELECT
|
|
|
+ age,
|
|
|
+ GROUP_CONCAT(name SEPARATOR '-') as name
|
|
|
+ FROM employees
|
|
|
+ GROUP BY age
|
|
|
+ ```
|
|
|
+
|
|
|
+ Вернет примерно такое:
|
|
|
+
|
|
|
+ age | name
|
|
|
+ ----|-------
|
|
|
+ 23 | user1-user2-user3
|
|
|
+ 24 | user4-user5
|
|
|
+ 25 | user6
|
|
|
|
|
|
>Агрегатные функции применяются для значений, не равных `NULL`. Исключением является функция `COUNT(*)` (она считает количество записей в группе).
|
|
|
|