Як правильно підсумувати Rollup?
Часто для наших задач ми використовуємо різні, втім пов’язані між собою, бази даних. Іноді це робиться для того, щоб логічно розмежувати процеси роботи, а іноді — тому що нам потрібно встановити різні рівні доступу.
Розгляньмо на прикладі двох баз даних:
- Фінанси (доступ до якої має лише адміністрація),
- Відділи (доступ до якої мають різні відділи компанії).
У базу даних “Відділи” різні команди вносять свої фінансові показники по кварталах, а у базі даних “Фінанси” адміністрація бачить зведену статистику. Для цього у “Фінансах” ми налаштували Rollup, який підтягуватиме ці фінансові дані на основі властивості relation.
А тепер давайте детально розглянемо, коли саме і чому Rollup може не працювати.
У чому полягає проблема?
Наприклад, ми маємо 3 показники за 1-й квартал — по одному від кожного відділу.
Ось як ці дані виглядатимуть у базі даних “Фінанси”.
Але якщо ми захочемо підсумувати цю колонку, то не зможемо цього зробити, оскільки такої можливості просто немає.
Ось як вона виглядає наразі:
А ось як вона має виглядати, коли є можливість підсумувати:
Чому ми не можемо підсумувати показники?
Можливість підсумувати фінансові показники відсутня через те, що дані, які надходять у базу даних “Фінанси”, є не окремими одиницями, а масивом даних. Є таке поняття як array — масив даних, які передаються як єдине ціле (давайте для зручності далі називати його списком).
І поки це список даних — ви не можете об’єднувати його елементи з іншими поодинці. Тому що цей список функціонує як незалежна одиниця.
Розгляньмо конкретний приклад. Уявімо, що відділ маркетингу має два показники, наприклад, за два квартали.
Як бачите, ці фінансові дані не об’єдналися, а стали поруч один з одним. І наразі це список. Щоб скласти ці показники, ми маємо зайти всередину Rollup та обрати sum.
Тепер ми отримали суму цих чисел.
Тобто, ми перетворили список на одиницю.
Тому, так само як і тут, на першому прикладі, навіть якщо ви отримуєте один показник, а не декілька, вам все одно потрібно замінити “Show Original” на “Sum”.
І тепер, як ви бачите, у нас з’явилася можливість скласти суму всієї колонки.
Висновки
Цей приклад дозволить вам краще зрозуміти, що є одиницею даних у Notion, а що є списком (Array). І це неодмінно знадобиться вам, коли ви почнете активніше працювати з формулами Notion, накшталт: map(), filter(), find() та інших.