Запити 1с 8
Припустимо, що на наших складах є такий товар:
Товар в даному випадку - це поле за яким здійснюється угруповання, а Кількість - группіруемих поле. СУМА - це агрегатна функція, вона вказує запитом що всі дані по кількості однакових товарів потрібно підсумувати. Результатом виконання цього запиту буде таблиця вигляду:
агрегатні функції
До группіруемих полях повинні бути обов'язково застосована агрегатна функція, це необов'язково СУМА, а також МАКСИМУМ, МІНІМУМ, СЕРЕДНЯ, КІЛЬКІСТЬ, КІЛЬКІСТЬ РІЗНИХ. Розглянемо більш докладно дію кожної з них.
СУМА - застосовується тільки для числових полів, складає передані їй числа. Її результат наведено на малюнку вище.
СЕРЕДНЯ - застосовується тільки для числових полів, обчислює середнє - сума переданих параметрів / кількість параметрів:
МАКСИМУМ - може використовуватися для будь-яких полів, отримує максимальний з переданих параметрів. Припустимо текст запиту має вигляд:
Тобто маємо знову одне группіровочних поле Товар і два группіруемих поля: Склад і Кількість. Результат виконання цього запиту буде виглядати наступним чином:
МІНІМУМ - може використовуватися для будь-яких полів, отримує мінімальний з переданих параметрів:
КІЛЬКІСТЬ - може використовуватися для будь-яких полів, отримує кількість переданих параметрів:
КІЛЬКІСТЬ РІЗНИХ - може використовуватися для будь-яких полів, отримує кількість різних параметрів. Тобто якщо функції передати параметри (1,1,2,3,3,3,4,4,4,4,4,5), то вона поверне 5. Функція КІЛЬКІСТЬ повернула б 12. Запит з використанням функції КІЛЬКІСТЬ РІЗНИХ буде виглядати так :
Нехай ми групуємо по двох полях: Товар і Склад:
для різних агрегатних функцій результат буде таким:
Якщо в запиті використовується угруповання, то все поля повинні ділитися на групуються (які будуть "згорнуті") і групувальні (за якими здійснюється угруповання - "згортання"). До группіруемих полях повинна бути застосована одна з агрегатних функцій, причому такі функції як СУМА і СЕРЕДНЯ можуть бути застосовані тільки до числових полях.