Funkcie GroupBy a Ungroup

Vzťahuje sa na: aplikácie plátna aplikácie s podporou modelov

Zoskupia o oddelia záznamy v tabuľke.

Description

Funkcia GroupBy vráti tabuľku so záznamami zoskupenými na základe hodnôt v jednom alebo viacerých stĺpcoch. Záznamy v rovnakej skupine sú umiestnené do jedného záznamu s pridaným stĺpcom, v ktorom je vnorená tabuľka zostávajúcich stĺpcov.

Funkcia Ungroup je opakom funkcie GroupBy. Táto funkcia vráti tabuľku, v ktorej sú všetky záznamy, ktoré boli zoskupené, rozdelené na samostatné záznamy.

Záznamy môžete zoskupiť pomocou funkcie GroupBy, upraviť vrátenú tabuľku a potom záznamy v tejto upravenej tabuľke oddeliť pomocou funkcie Ungroup. Týmto postupom môžete napríklad odobrať skupinu záznamov:

  • Použite funkciu GroupBy.
  • Pomocou funkcie Filter odoberte celú skupinu záznamov.
  • Použite funkciu Ungroup.

Výsledky môžete tiež agregovať na základe zoskupenia:

  • Použite funkciu GroupBy.
  • Použite funkciu Pridať stĺpce s funkciou Súčet, Priemer a ďalšie agregačné funkcie na pridanie nového stĺpca, ktorý je súhrnom tabuliek skupín.
  • Pomocou funkcie DropColumns zoskupenú tabuľku zrušte.

Funkcia Ungroup sa snaží zachovať pôvodné poradie záznamov odovzdaných funkcii GroupBy. To nie je vždy možné (napríklad keď pôvodná tabuľka obsahuje prázdne záznamy).

Tabuľke je v hodnote Power Apps, rovnako ako napríklad reťazec alebo číslo. Tabuľku môžete zadať ako argument funkcie, pričom funkcia môže vrátiť tabuľku. Funkcie GroupBy a Ungroup tabuľku nemenia. Namiesto toho prevezmú tabuľku ako argument a vrátia inú tabuľku. Ďalšie podrobnosti nájdete v časti týkajúcej sa práce s tabuľkami.

Poznámka

V Power Apps pred verziou 3.24042 boli názvy stĺpcov špecifikované pomocou textového reťazca pomocou dvojitých úvodzoviek a ak boli pripojené k zdroj údajov, museli to byť aj logické názvy. Napríklad namiesto zobrazovaného mena Názov bez úvodzoviek bol použitý logický názov "cr43e_name" s dvojitými úvodzovkami. Pre zdroje údajov SharePoint a Excel, ktoré obsahujú názvy stĺpcov s medzerami, bola každá medzera špecifikovaná pomocou "_x0020_", napríklad "Názov stĺpca" ako "Názov_x0020_stĺpca". Po tejto verzii boli všetky aplikácie automaticky aktualizované na novú syntax opísanú v tomto článku.

Syntax

GroupByTable, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Table – povinné. Tabuľka, ktorá sa má zoskupiť.
  • ColumnName1, ColumnName2, … – povinné. Názvy stĺpcov v tabuľke, podľa ktorých sa majú záznamy zoskupiť. Z týchto stĺpcov sa stanú stĺpce vo výslednej tabuľke.
  • GroupColumnName – povinné. Názov stĺpca na uloženie údajov záznamov, ktoré nie sú v ColumnName(s).

UngroupTable, GroupColumnName )

  • Table – povinné. Tabuľka, ktoré sa má oddeliť.
  • GroupColumnName – povinné. Stĺpec obsahujúci údaje záznamov nastavených pomocou funkcie GroupBy.

Príklady

Vytvorenie kolekcie

  1. Pridajte tlačidlo a nastavte jeho vlastnosť Text tak, aby zobrazovalo Original.
  2. Nastavte vlastnosť OnSelect tlačidla Original na tento vzorec:
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. Podržte stlačený kláves Alt a vyberte tlačidlo Original.

    Práve ste vytvorili kolekciu s názvom CityPopulations, ktorá obsahuje nasledujúce údaje:

    Príklad CityPopulations.

  2. Túto kolekciu zobrazíte tak, že v ponuke Súbor vyberiete Kolekcie a potom vyberiete kolekciu CityPopulations. Zobrazí sa prvých päť záznamov v tejto kolekcii:

    Zbierka CityPopulations.

Zoskupenie záznamov

  1. Pridajte ďalšie tlačidlo a jeho vlastnosť Text nastavte na "Group".

  2. Vlastnosť OnSelect tohto tlačidla nastavte na tento vzorec:

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

  3. Podržte stlačený kláves Alt a vyberte tlačidlo Group.

    Práve ste vytvorili kolekciu s názvom CitiesByCountry, v ktorej sú záznamy predchádzajúcej kolekcie zoradené podľa stĺpca Country.

    Mestá zoskupené.

  4. Ak chcete zobraziť prvých päť záznamov v tejto kolekcii, vyberte Kolekcie v ponuke Súbor.

    Mestá podľa krajiny/regiónu.

  5. Ak chcete zobraziť počet obyvateľov miest v krajine/regióne, vyberte ikonu tabuľky v stĺpci Mestá pre danú krajinu/región (napríklad Nemecko):

    Obyvateľstvo – Nemecko.

Filtrovanie a oddelenie záznamov

  1. Pridajte ďalšie tlačidlo a nastavte jeho vlastnosť Text tak, aby zobrazovalo "Filter".

  2. Vlastnosť OnSelect tohto tlačidla nastavte na tento vzorec:

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

  3. Podržte stlačený kláves Alt a vyberte tlačidlo, ktoré ste pridali.

    Práve ste vytvorili tretiu kolekciu s názvom CitiesByCountryFiltered, ktorá obsahuje iba krajiny s písmenom „a“ v názve (napríklad Španielsko alebo Taliansko).

    CitiesByCountryFiltered.

  4. Pridajte ešte jedno tlačidlo a jeho vlastnosť Text nastavte tak, aby zobrazovalo "Ungroup".

  5. Vlastnosť OnSelect tohto tlačidla nastavte na tento vzorec:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Výsledok bude nasledujúci:

    Mestá podľa krajiny/regiónu po rozdelení skupiny.

Agregácia výsledkov

Ďalšou operáciou, ktorú môžeme vykonať na zoskupenej tabuľke, je zostavenie výsledkov. V tomto príklade spočítame počet obyvateľov veľkých miest v každej krajine/regióne.

  1. Pridajte ďalšie tlačidlo a jeho vlastnosť Text nastavte tak, aby zobrazovalo "Sum".

  2. Vlastnosť OnSelect tlačidla "Sum" nastavte na tento vzorec:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Súčet mestského obyvateľstva', Sum( Mestá, Obyvateľstvo ) ) )

    Výsledok bude nasledujúci:

    Súčet miest.

    Funkcia AddColumns začne so základnou kolekciou CitiesByCountry a pridá nový stĺpec Sum of City Populations. Hodnoty v tomto stĺpci sa počítajú riadok po riadku na základe vzorca Sum( Cities, Population ). Funkcia AddColumns poskytuje hodnotu stĺpca Cities (tabuľku) pre každý riadok a funkcia Sum spočíta hodnoty Population jednotlivých riadkov tejto podtabuľky.

    Teraz, keď sme spočítali požadované údaje, môžeme pomocou funkcie DropColumns podtabuľky odobrať.

  3. Pridajte ďalšie tlačidlo a jeho vlastnosť Text nastavte tak, aby zobrazovalo hodnotu "SumOnly".

  4. Vlastnosť OnSelect tlačidla "SumOnly" nastavte na tento vzorec:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    Výsledok bude nasledujúci:

    Súčet krajín.

    Všimnite si, že sme túto tabuľku nepotrebovali oddeliť.