GROUPBY — различия между версиями

Материал из GB wiki
Перейти к: навигация, поиск
 
(не показано 11 промежуточных версий этого же участника)
Строка 2: Строка 2:
 
|Название=GROUPBY
 
|Название=GROUPBY
 
|Описание=Позволяет группировать датасет по ключевым полям, суммируя при этом значения полей, которые не участвовали в группировке.
 
|Описание=Позволяет группировать датасет по ключевым полям, суммируя при этом значения полей, которые не участвовали в группировке.
|Синтаксис=GROUPBY ('''Имя датасета''','''Поля для группировки''','''Поля для суммирования''')
+
|Синтаксис=GROUPBY('''Имя датасета''', '''Поля для группировки''', '''Поля для суммирования''', Имя датасета результата)
 
|Аргументы=
 
|Аргументы=
 
{{Аргумент
 
{{Аргумент
 
  |Название=Имя датасета
 
  |Название=Имя датасета
  |Пояснение=строка, имя датасета.
+
  |Пояснение=строка, имя датасета, поля которого подлежат группировке.
 
}}<br/>{{Аргумент
 
}}<br/>{{Аргумент
 
  |Название=Поля для группировки
 
  |Название=Поля для группировки
Строка 12: Строка 12:
 
}}<br/>{{Аргумент
 
}}<br/>{{Аргумент
 
  |Название=Поля для суммирования
 
  |Название=Поля для суммирования
  |Пояснение=Строка, список полей для суммирования через ";". После каждого поля может быть указана функция SUM, MIN, MAX или LIST, через знак =. Также можно использовать массив, где ключи - имена полей, значения - функции
+
  |Пояснение=Строка, список полей для суммирования через ";". После каждого поля может быть указана функция через знак "=". Также можно использовать массив, где ключи &ndash; имена полей, значения &ndash; функции.
 +
:<p>Список функций:</p>
 +
:* SUM &ndash; сумма значений;
 +
:* MIN &ndash; минимальное значение;
 +
:* STRMIN &ndash; минимальное значение (сравнение числовых значений как строк);
 +
:* MAX &ndash; максимальное значение;
 +
:* STRMAX &ndash; максимальное значение (сравнение числовых значений как строк);
 +
:* LIST &ndash; список значений (через ";");
 +
:* STRSUM &ndash; все значения в общей строке без разделителей.
 +
<blockquote>''Примечание. Для пар функций MIN&ndash;STRMIN и MAX&ndash;STRMAX следующие различия в сравнении числовых значений:''
 +
* ''9 < 10, если сравнивать как числа (MIN, MAX);''
 +
* ''"9" > "10", если сравнивать как строки, т.к. при посимвольном сравнении "9">"1" (STRMIN, STRMAX).''</blockquote>
 +
}}{{Аргумент
 +
|Название=Имя датасета результата
 +
|Пояснение=строка, имя датасета. Необязательный параметр, если задан, то результат группировки будет помещён в этот датасет (иначе &ndash; результат группировки помещается в исходный датасет).
 
}}
 
}}
 
|Тип результата=нет.
 
|Тип результата=нет.
|Пример=GROUPBY('foDS','Articul','Quantity')
+
|Пример=GroupBy('foDS', 'Articul', 'Quantity')
<br/>GROUPBY('pds','Node;Name','Id=SUM;Name=LIST')
+
<br/>GroupBy('pds', 'Node;Name', 'Id=SUM;Name=LIST')
<br/>GROUPBY('pds',['Node','Name'],['Id':'SUM','Name':'LIST'])
+
<br/>GroupBy('pds', ['Node','Name'], ['Id':'SUM','Name':'LIST'])
 
}}
 
}}

Текущая версия на 06:54, 4 мая 2016

Позволяет группировать датасет по ключевым полям, суммируя при этом значения полей, которые не участвовали в группировке.

Синтаксис

GROUPBY(Имя датасета, Поля для группировки, Поля для суммирования, Имя датасета результата)

Аргументы

Имя датасета
строка, имя датасета, поля которого подлежат группировке.
Поля для группировки
Строка, список ключевых полей для группировки через ";". Также можно использовать массив строк без ключей.
Поля для суммирования
Строка, список полей для суммирования через ";". После каждого поля может быть указана функция через знак "=". Также можно использовать массив, где ключи – имена полей, значения – функции.

Список функций:

  • SUM – сумма значений;
  • MIN – минимальное значение;
  • STRMIN – минимальное значение (сравнение числовых значений как строк);
  • MAX – максимальное значение;
  • STRMAX – максимальное значение (сравнение числовых значений как строк);
  • LIST – список значений (через ";");
  • STRSUM – все значения в общей строке без разделителей.
Примечание. Для пар функций MIN–STRMIN и MAX–STRMAX следующие различия в сравнении числовых значений:
  • 9 < 10, если сравнивать как числа (MIN, MAX);
  • "9" > "10", если сравнивать как строки, т.к. при посимвольном сравнении "9">"1" (STRMIN, STRMAX).
Имя датасета результата
строка, имя датасета. Необязательный параметр, если задан, то результат группировки будет помещён в этот датасет (иначе – результат группировки помещается в исходный датасет).

Тип результата

Нет

Примеры

GroupBy('foDS', 'Articul', 'Quantity')
GroupBy('pds', 'Node;Name', 'Id=SUM;Name=LIST')
GroupBy('pds', ['Node','Name'], ['Id':'SUM','Name':'LIST'])