Ver código fonte

добавил group_concat

Евгений Колесников 5 meses atrás
pai
commit
c16ef33ef8
1 arquivos alterados com 38 adições e 0 exclusões
  1. 38 0
      articles/sql_advanced.md

+ 38 - 0
articles/sql_advanced.md

@@ -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(*)` (она считает количество записей в группе).