Funkcije GroupBy i Razgrupiranje

Odnosi se na: Aplikacije od gotovih gradivnih elemenata Aplikacije stvorene prema modelu

Grupira i razgrupira zapise neke tablice.

Opis

Funkcija GroupBy vraća tablicu sa zapisima grupiranim na temelju vrijednosti u jednoj ili više stupaca. Zapisi u istoj grupi smještaju se u jedan zapis, s dodatnim stupcem koji sadrži ugniježđenu tablicu preostalih stupaca.

Funkcija Ungroup preokreće proces GroupBy. Ova funkcija vraća tablicu, razbijajući u zasebne zapise sve zapise koji su bili grupirani zajedno.

Možete grupirati zapise koristeći GroupBy, izmijenite tablicu koju vraća i zatim razgrupirajte zapise u izmijenjenu tablicu koristeći Ungroup. Na primjer, možete ukloniti grupu zapisa slijedeći ovaj pristup:

  • Koristite funkciju GroupBy.
  • Upotrijebite funkciju Filter kako biste uklonili cijelu grupu zapisa.
  • Koristite funkciju Ungroup.

Također, možete zbrojiti rezultate na temelju grupiranja:

Ungroup pokušava sačuvati izvorni redoslijed zapisa koji su uneseni u GroupBy. To nije uvijek moguće (na primjer, ako originalna tablica sadrži zapise prazno).

Tablica predstavlja jednu vrijednost u aplikaciji Power Apps, baš poput nekog niza ili broja. Možete odrediti tablicu kao argument neke funkcije, a funkcija može vratiti tablicu. Funkcije GroupBy i Ungroup ne mijenjaju tablicu; umjesto toga uzimaju tablicu kao argument i vraćaju drugačiju tablicu. Dodatne informacije potražite u odjeljku rad s tablicama.

Napomena

Prije Power Apps verzije 3.24042 nazivi stupaca navedeni su tekstnim nizom pomoću dvostrukih navodnika, a ako su povezani s izvor podataka također su trebali biti logički nazivi. Na primjer, umjesto zaslonsko ime Ime bez navodnika korišten je logički naziv "cr43e_name" s dvostrukim navodnicima. Za SharePoint i Excelove izvore podataka koji sadrže nazive stupaca s razmacima, svaki je razmak određen sa" _x0020_", na primjer "Naziv stupca" kao "Column_x0020_Name". Afer ovu verziju, sve su aplikacije automatski ažurirane na novu sintaksu opisanu u ovom članku.

Sintaksa

GroupBy( tablica, naziv stupca 1 [, naziv stupca 2, ... ], naziv grupnog stupca )

  • Table – obavezno. Tablica koju treba grupirati.
  • ColumnName(s) – obavezno. Nazivi stupaca u Tablica kojima se grupiraju zapisi. Ti stupci postaju stupci u rezultirajućoj tablici.
  • GroupColumnName – obavezno. Naziv stupca za pohranu podataka o zapisu koji nije u naziv(ima) stupca.

Ungroup( tablica, naziv grupnog stupca )

  • Table – obavezno. Tablica koju treba razgrupirati.
  • GroupColumnName – obavezno. Stupac koji sadrži postavke podataka o zapisu s funkcijom GroupBy.

Primjeri

Stvaranje zbirke

  1. Dodajte gumb i postavite njegovo svojstvo Text tako da gumb prikazuje Original.
  2. Postavite svojstvo OnSelect gumba Original na ovu formulu:
ClearCollect( CityPopulations,
    { City: "London",    Country: "United Kingdom", Population: 8615000},
    { City: "Berlin",    Country: "Germany",        Population: 3562000},
    { City: "Madrid",    Country: "Spain",          Population: 3165000},
    { City: "Rome",      Country: "Italy",          Population: 2874000},
    { City: "Paris",     Country: "France",         Population: 2273000},
    { City: "Hamburg",   Country: "Germany",        Population: 1760000},
    { City: "Barcelona", Country: "Spain",          Population: 1602000},
    { City: "Munich",    Country: "Germany",        Population: 1494000},
    { City: "Milan",     Country: "Italy",          Population: 1344000}
)
  1. Odaberite gumb Original dok držite pritisnutu tipku Alt.

    Upravo ste stvorili zbirku, nazvanu CityPopulations, koja sadrži sljedeće podatke:

    Primjer CityPopulations.

  2. Da biste prikazali ovu zbirku, odaberite mogućnost Zbirke u izborniku Datoteka, a zatim odaberite zbirku CityPopulations. Pojavljuje se prvih pet zapisa u zbirci:

    Zbirka CityPopulations.

Grupiranje zapisa

  1. Dodajte još jedan gumb i postavite njegovo svojstvo Text na „Group”.

  2. Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:

    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) )

  3. Odaberite gumb Group dok držite pritisnutu tipku Alt.

    Upravo ste stvorili zbirku, nazvanu CitiesByCountry, u kojoj su zapisi iz prethodne zbirke grupirani prema stupcu Country.

    Grupirani gradovi.

  4. Za prikaz prvih pet zapisa u ovoj zbirci, odaberite mogućnost Zbirke u izborniku Datoteka.

    Gradovi po državama/regijama.

  5. Da biste prikazali populacije gradova u državi/regiji, odaberite ikonu tablice u stupcu Gradovi za tu državu/regiju (na primjer, Njemačka):

    Stanovništvo – Njemačka.

Filtriranje i razgrupiranje zapisa

  1. Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Filter”.

  2. Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )

  3. Odaberite gumb koji ste dodali dok držite pritisnutu tipku Alt.

    Upravo ste stvorili treću zbirku, nazvanu CitiesByCountryFiltered, koja sadrži samo one zemlje koje u svom nazivu imaju „e” (dakle, ne Španjolska ili Italija).

    CitiesByCountryFiltered.

  4. Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Ungroup”.

  5. Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    To daje sljedeći rezultat:

    Gradovi po državi/regiji nakon razgrupiranja.

Zbrajanje rezultata

Još jedna operacija koju možemo izvesti na grupiranoj tablici je sastavljanje rezultata. U ovom primjeru zbrojit ćemo broj stanovnika većih gradova u svakoj zemlji/regiji.

  1. Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Sum”.

  2. Postavite svojstvo OnSelect gumba Sum na ovu formulu:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Zbroj gradskih populacija', Zbroj( gradovi, stanovništvo ) )

    To daje sljedeći rezultat:

    Zbroj gradova.

    AddColumns započinje osnovnom zbirkom CitiesByCountry i dodaje novi stupac Sum of City Populations. Vrijednosti ovog stupca izračunavaju se redak po redak formulom Sum( Cities, Population ). AddColumns pruža vrijednost stupca Cities (tablica) za svaki redak i Sum dodaje Population za svaki redak ove podtablice.

    Sada kada imamo sumu koju želimo, možemo iskoristiti DropColumns kako bismo uklonili podtablice.

  3. Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „SumOnly”.

  4. Postavite svojstvo OnSelect gumba „SumOnly” na ovu formulu:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    To daje sljedeći rezultat:

    Zbroj zemalja.

    Imajte na umu da nismo morali razgrupirati ovu tablicu.