Dokumentacja dla programistów

Agregacja

Aktualizacja 2026-09-06

Agregacja podsumowuje duże ilości danych w mniejszej liczbie bardziej znaczących wartości, dzięki czemu możesz szybko zrozumieć dane dotyczące pracy.

Łączy wiele wierszy w mniejszy zestaw punktów danych. Na przykład dyrektor marketingu, który korzysta z tablicy monday.com z kampaniami, może użyć agregacji, aby znaleźć średni koszt kampanii na całej tablicy.

Funkcje agregujące określają sposób obliczania danych (np. AVERAGE oblicza średnią, a COUNT_ITEMS zlicza elementy). Możesz też zastosować filtry, aby skupić się na wybranych danych (np. kampaniach rozpoczętych w ciągu ostatnich 6 miesięcy), lub użyć grupowania, aby podsumować elementy według wspólnej kolumny (np. obliczyć średni koszt dla każdego kierownika marketingu).

Korzyści dla wydajności: Zapytania agregujące wymagają znacznie mniej złożoności niż równoważne zapytania o elementy. W testach zapytanie agregujące na tablicy zawierającej 1368 elementów kosztowało 110 punktów złożoności, w porównaniu z ponad 5520 punktami za pobranie tych samych danych za pomocą items_page. Szczegóły znajdziesz w przewodniku po agregacji.

Zapytania

Pobieranie danych zagregowanych

  • Zwraca tablicę zagregowanych wyników; zwrócone wartości są wstępnie przetworzone, więc nie trzeba obsługiwać danych po stronie klienta
  • Zapytanie musi znajdować się bezpośrednio na poziomie głównym; nie można umieścić go wewnątrz innego zapytania

Podstawowy przykład

Zlicz elementy i oblicz średnią wartości w kolumnie liczbowej:

query {
  aggregate(query: {
    from: { type: TABLE, id: 1234567890 },
    select: [
      {
        type: FUNCTION,
        function: { function: COUNT_ITEMS },
        as: "total_items"
      },
      {
        type: FUNCTION,
        function: {
          function: AVERAGE,
          params: [{ type: COLUMN, column: { column_id: "numbers" }, as: "numbers" }]
        },
        as: "avg_value"
      }
    ]
  }) {
    results {
      entries {
        alias
        value {
          ... on AggregateBasicAggregationResult { result }
        }
      }
    }
  }
}

Przykład grupowania

Poniższy przykład zwraca sumę punktów historyjek dla każdej osoby. Uwzględnia tylko elementy, w których kolumna statusu ma wartość „Done”.

query {
  aggregate(query: {
    from: { type: TABLE, id: 1234567890 },
    group_by: [{ column_id: "task_owner", limit: 10 }],
    query: {
      rules: [{
        operator: any_of,
        column_id: "status",
        compare_value: [1]
      }]
    },
    select: [
      {
        type: FUNCTION,
        function: {
          function: SUM,
          params: [{ type: COLUMN, column: { column_id: "task_estimation" }, as: "task_estimation" }]
        },
        as: "sum"
      },
      {
        type: COLUMN,
        column: { column_id: "task_owner" },
        as: "task_owner"
      }
    ]
  }) {
    results {
      entries {
        alias
        value {
          ... on AggregateGroupByResult { value }
          ... on AggregateBasicAggregationResult { result }
        }
      }
    }
  }
}

Formaty wartości grupowania: Pole value w AggregateGroupByResult zwraca surowe wartości, których format zależy od typu kolumny. Kolumny statusu zwracają kody kolorów w formacie szesnastkowym (np. "#00c875"), kolumny osób zwracają identyfikatory (np. "person-12345"), kolumny dat zwracają znaczniki czasu epoki w milisekundach, a kolumny pól wyboru zwracają wartości logiczne. Pełne zestawienie znajdziesz w przewodniku po agregacji.

Argumenty

Argument Typ Opis
query AggregateQueryInput! Zapytanie agregujące do wykonania. Określa źródło danych, grupowania, filtry i pola do agregacji.

Pola

Pole Typ Opis
results [AggregateResultSet!] Wynik zapytania agregującego.

Obsługiwane funkcje

Funkcje agregujące

Te funkcje redukują zestaw wartości do pojedynczego wyniku.

Funkcja Opis Wymaga kolumny Przykładowe zastosowanie
COUNT_ITEMS Zlicza wszystkie elementy Nie Łączna liczba zadań na tablicy
COUNT_SUBITEMS Zlicza wszystkie podelementy Nie Łączna liczba podzadań w elementach
COUNT Zlicza elementy, w których kolumna ma wartość inną niż null Tak Liczba elementów z szacunkami
COUNT_DISTINCT Zlicza unikalne wartości w kolumnie Tak Liczba unikalnych kategorii tekstowych
SUM Sumuje wartości liczbowe Tak Łączna liczba punktów historyjek
AVERAGE Oblicza średnią Tak Średnia wartość transakcji
MEDIAN Znajduje wartość środkową Tak Mediana czasu realizacji
MIN Znajduje najmniejszą wartość Tak Najwcześniejsza data, najniższy wynik
MAX Znajduje największą wartość Tak Najpóźniejsza data, najwyższy wynik

Funkcje przekształcające

Te funkcje przekształcają wartości kolumn na potrzeby operacji group_by. Alias as funkcji przekształcającej musi być zgodny z wartością column_id w tablicy group_by.

Funkcja Opis Przykładowe zastosowanie
DATE_TRUNC_DAY Zaokrągla daty do dnia Grupowanie elementów według dnia
DATE_TRUNC_WEEK Zaokrągla daty do tygodnia Tygodniowe zestawienia elementów
DATE_TRUNC_MONTH Zaokrągla daty do miesiąca Miesięczne podsumowania
DATE_TRUNC_QUARTER Zaokrągla daty do kwartału Raporty kwartalne
DATE_TRUNC_YEAR Zaokrągla daty do roku Porównanie rok do roku

Zastosowania

  • Dynamiczne generowanie zapytań: Przekształcaj dane wprowadzane przez użytkowników w uporządkowane zapytania agregujące na potrzeby pulpitów, wykresów i podsumowań.
  • Informacje na żądanie: Zapewnij zespołom natychmiastowy wgląd w obciążenie pracą, aktywność lub wąskie gardła dzięki automatycznym zapytaniom.
  • Niestandardowe raporty za pomocą API: Twórz raporty i wizualizacje w usługach zewnętrznych bez agregowania danych po stronie klienta.
  • Samoobsługowa analityka: Umożliwiaj automatyzacjom i wewnętrznym narzędziom programowy dostęp do pogrupowanych wskaźników.
  • Optymalizacja złożoności: Zastąp wielostronicowe zapytania o elementy pojedynczym wywołaniem agregującym i zmniejsz koszty złożoności API 50–150 razy.