Як правильно підсумувати Rollup?

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

Розгляньмо на прикладі двох баз даних:

  • Фінанси (доступ до якої має лише адміністрація),
  • Відділи (доступ до якої мають різні відділи компанії).

У базу даних “Відділи” різні команди вносять свої фінансові показники по кварталах, а у базі даних “Фінанси” адміністрація бачить зведену статистику. Для цього у “Фінансах” ми налаштували Rollup, який підтягуватиме ці фінансові дані на основі властивості relation.

А тепер давайте детально розглянемо, коли саме і чому Rollup може не працювати.

У чому полягає проблема?

Наприклад, ми маємо 3 показники за 1-й квартал — по одному від кожного відділу.

Notion Database

Ось як ці дані виглядатимуть у базі даних “Фінанси”.

Notion Database

Але якщо ми захочемо підсумувати цю колонку, то не зможемо цього зробити, оскільки такої можливості просто немає.

Ось як вона виглядає наразі:

Notion - sum numbers

Notion - sum numbers

А ось як вона має виглядати, коли є можливість підсумувати:

Notion - column options

Чому ми не можемо підсумувати показники?

Можливість підсумувати фінансові показники відсутня через те, що дані, які надходять у базу даних “Фінанси”, є не окремими одиницями, а масивом даних. Є таке поняття як array — масив даних, які передаються як єдине ціле (давайте для зручності далі називати його списком).

І поки це список даних — ви не можете об’єднувати його елементи з іншими поодинці. Тому що цей список функціонує як незалежна одиниця.

Розгляньмо конкретний приклад. Уявімо, що відділ маркетингу має два показники, наприклад, за два квартали.

Notion Array of numbers

Як бачите, ці фінансові дані не об’єдналися, а стали поруч один з одним. І наразі це список. Щоб скласти ці показники, ми маємо зайти всередину Rollup та обрати sum.

Notion sum options

Notion sum array

Тепер ми отримали суму цих чисел.

Notion summed array

Тобто, ми перетворили список на одиницю.

Тому, так само як і тут, на першому прикладі, навіть якщо ви отримуєте один показник, а не декілька, вам все одно потрібно замінити “Show Original” на “Sum”.

Notion - database sum options

І тепер, як ви бачите, у нас з’явилася можливість скласти суму всієї колонки.

Висновки

Цей приклад дозволить вам краще зрозуміти, що є одиницею даних у Notion, а що є списком (Array). І це неодмінно знадобиться вам, коли ви почнете активніше працювати з формулами Notion, накшталт: map(), filter(), find() та інших.