Запити 1с 8

Припустимо, що на наших складах є такий товар:

Запити 1с 8

Товар в даному випадку - це поле за яким здійснюється угруповання, а Кількість - группіруемих поле. СУМА - це агрегатна функція, вона вказує запитом що всі дані по кількості однакових товарів потрібно підсумувати. Результатом виконання цього запиту буде таблиця вигляду:

Запити 1с 8

агрегатні функції

До группіруемих полях повинні бути обов'язково застосована агрегатна функція, це необов'язково СУМА, а також МАКСИМУМ, МІНІМУМ, СЕРЕДНЯ, КІЛЬКІСТЬ, КІЛЬКІСТЬ РІЗНИХ. Розглянемо більш докладно дію кожної з них.

СУМА - застосовується тільки для числових полів, складає передані їй числа. Її результат наведено на малюнку вище.

СЕРЕДНЯ - застосовується тільки для числових полів, обчислює середнє - сума переданих параметрів / кількість параметрів:

Запити 1с 8

МАКСИМУМ - може використовуватися для будь-яких полів, отримує максимальний з переданих параметрів. Припустимо текст запиту має вигляд:

Тобто маємо знову одне группіровочних поле Товар і два группіруемих поля: Склад і Кількість. Результат виконання цього запиту буде виглядати наступним чином:

Запити 1с 8

МІНІМУМ - може використовуватися для будь-яких полів, отримує мінімальний з переданих параметрів:

Запити 1с 8

КІЛЬКІСТЬ - може використовуватися для будь-яких полів, отримує кількість переданих параметрів:

КІЛЬКІСТЬ РІЗНИХ - може використовуватися для будь-яких полів, отримує кількість різних параметрів. Тобто якщо функції передати параметри (1,1,2,3,3,3,4,4,4,4,4,5), то вона поверне 5. Функція КІЛЬКІСТЬ повернула б 12. Запит з використанням функції КІЛЬКІСТЬ РІЗНИХ буде виглядати так :

Нехай ми групуємо по двох полях: Товар і Склад:

для різних агрегатних функцій результат буде таким:

Запити 1с 8

Якщо в запиті використовується угруповання, то все поля повинні ділитися на групуються (які будуть "згорнуті") і групувальні (за якими здійснюється угруповання - "згортання"). До группіруемих полях повинна бути застосована одна з агрегатних функцій, причому такі функції як СУМА і СЕРЕДНЯ можуть бути застосовані тільки до числових полях.

Схожі статті