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([Partner reports], Province, "TOTAL_INPERSON", SUM(INPERSON), "TOTAL_RADIO", SUM(RADIO))

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

Район TOTAL_INPERSON TOTAL_RADIO
Північний 500 2,000
Південний 600 1,000
Східний 5,000
Західний 300

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

SUMMARIZE([Partner reports], Province, "TOTAL_INPERSON", SUM(INPERSON), "TOTAL_RADIO", SUM(RADIO)) |>
  SUMX(MAX(TOTAL_INPERSON, TOTAL_RADIO))

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

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

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

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

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

SUMMARIZE([Household Health Check-in], [Family], 
    "Baseline", FIRST([Number of sick family members], [Date of reporting]),
    "Final",    LAST ([Number of sick family members], [Date of reporting])) |>
ADDCOLUMNS(
    "Change", Final - Baseline,  
    "Pct change", (Final - Baseline) / Baseline)   

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

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