Agregacja
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.