SUMMARIZE

Мова: Українська
Цю статтю перекладено з англійської за допомогою ШІ, тому вона може містити помилки. Ваші відгуки допоможуть нам її покращити.

Опис

Функція SUMMARIZE узагальнює вхідну таблицю, групуючи її за однією або кількома колонками.

Використання

SUMMARIZE (<Table Expression>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)

Функція summarize повертає нову таблицю. Нова таблиця міститиме всі колонки, за якими здійснюється групування, а також нові вирази.

Приклади

Уникнення подвійного підрахунку звітів про активності

Якщо у вас є програма, спрямована на просування певних практик харчування для матерів дітей до п'яти років, і партнери звітують вам про зведені показники результатів, наприклад:

  • Кількість матерів, охоплених шляхом поквартирного обходу (INPERSON)
  • Орієнтовна кількість матерів, охоплених через радіомовлення (RADIO)

Можливо, ви захочете оцінити загальне охоплення, поєднавши ці два показники. Однак, якщо один партнер проводить поквартирний обхід, а інший — радіомовлення в тій самій географічній зоні, ви не захочете подвійно рахувати ці показники.

Партнер Район INPERSON RADIO
A Північний 500
A Південний 600 1,000
B Північний 2,000
B Східний 5,000
C Західний 300

У цьому випадку, якщо ви просто додасте всі ці показники, ви ризикуєте подвійно порахувати результати в Північному районі, де 500 матерів було охоплено особисто, а 2000 — через радіо. Цілком імовірно, що багато матерів отримали як особистий візит, так і почули повідомлення по радіо.

Одним із рішень є спочатку підсумувати результати на рівні району та взяти або показники особистого охоплення, або показники радіоохоплення — залежно від того, що більше.

Спочатку ми використаємо функцію SUMMARIZE, щоб обчислити нову таблицю з сумами двох полів за районами.

SUMMARIZE([Звіти партнерів], Район, "ВСЬОГО_ОСОБИСТО", SUM(INPERSON), "ВСЬОГО_РАДІО", SUM(RADIO))

Це дає нам нову таблицю, яка виглядає так:

Район ВСЬОГО_ОСОБИСТО ВСЬОГО_РАДІО
Північний 500 2,000
Південний 600 1,000
Східний 5,000
Західний 300

Тепер, щоб знайти загальне охоплення, ми можемо використати функцію SUMX, щоб обчислити MAX для кожного рядка, а потім підсумувати ці максимуми:

SUMMARIZE([Звіти партнерів], Район, "ВСЬОГО_ОСОБИСТО", SUM(INPERSON), "ВСЬОГО_РАДІО", SUM(RADIO)) |>
  SUMX(MAX(ВСЬОГО_ОСОБИСТО, ВСЬОГО_РАДІО))

Це дає нам кінцевий результат 2000 + 1000 + 5000 + 300, або 8300.

Відстеження змін у стані здоров'я з часом

Припустімо, ви відстежуєте кількість хворих членів сім'ї в домогосподарствах з часом. У вас є форма «Перевірка здоров'я домогосподарства», яка містить записи про кількість хворих членів сім'ї на певну дату звітування, як показано нижче:

Сім'я Кількість хворих членів сім'ї Дата звітування
Ahunna 3 2023-01-15
Bilal 1 2023-02-10
Ahunna 4 2023-01-20
Bilal 2 2023-01-15

Ви можете визначити обчислювану таблицю, яка показує найранішу та найпізнішу зареєстровану кількість хворих членів сім'ї для кожної родини, використовуючи таку формулу:

SUMMARIZE([Перевірка здоров'я домогосподарства], [Сім'я], 
    "Базовий рівень", FIRST([Кількість хворих членів сім'ї], [Дата звітування]),
    "Кінцевий рівень",    LAST ([Кількість хворих членів сім'ї], [Дата звітування])) |>
ADDCOLUMNS(
    "Зміна", Кінцевий рівень - Базовий рівень,  
    "Зміна у %", (Кінцевий рівень - Базовий рівень) / Базовий рівень)   

Результатом буде таблиця:

Сім'я Базовий рівень Кінцевий рівень Зміна Зміна у %
Ahunna 3 4 1 33%
Bilal 2 1 -1 -33%
Наступний елемент
UNION