GROUPBY
Koskee seuraavia:Laskettu sarake
Laskettu taulukko
Mittayksikkö
Visuaalinen laskenta -
Muistiinpano
Tätä funktiota ei suositella käytettäväksi visuaalisissa laskutoimituksissa, koska se todennäköisesti palauttaa merkityksettömiä tuloksia.
GROUPBY-funktio on samankaltainen kuin SUMMARIZE funktio. GROUPBY ei kuitenkaan suorita implisiittistä CALCULATE lisäämilleen laajennussarakkeille. GROUPBY sallii uuden CURRENTGROUP-funktion käytön koostamisfunktioiden sisällä lisäämissään laajennussarakkeissa. GROUPBY käytetään useiden koosteiden suorittamiseen yksittäisessä taulukon tarkistuksessa.
Syntaksi
GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])
Parametrit
Termi | Määritelmä |
---|---|
table |
Mikä tahansa tietotaulukon palauttava DAX lauseke. |
groupBy_columnName |
Taulukon (tai siihen liittyvän taulukon) olemassa olevan sarakkeen nimi, jonka mukaan tiedot ryhmitetään. Tämä parametri ei voi olla lauseke. |
name |
Uudelle sarakkeelle annettu nimi, joka lisätään GroupBy-sarakkeiden luetteloon lainausmerkeissä. |
expression |
Yksi X-koostefunktioista, jonka ensimmäinen argumentti on CURRENTGROUP(). Katso alla olevasta CURRENTGROUP -osiosta täydellinen luettelo tuetuista X-koostefunktioista. |
Palautusarvo
Taulukko, jossa on valitut sarakkeet groupBy_columnName-argumenteille ja laajennussarakkeet, jotka on merkitty nimiargumenttien mukaan.
Huomautuksia
GROUPBY toimii seuraavasti:
Aloita määritetyllä taulukolla (kaikkien liittyvien taulukoiden tulee olla "yhteen"-suunnassa).
Luo ryhmittely käyttämällä kaikkia GroupBy-sarakkeita (joita on oltava taulukossa vaiheesta 1 alkaen).
Jokainen ryhmä on tuloksessa yksi rivi, mutta edustaa rivijoukkoa alkuperäisessä taulukossa.
Arvioi kullekin ryhmälle lisättävät laajennussarakkeet. Toisin kuin SUMMARIZE-funktiossa, tässä ei suoriteta implisiittistä CALCULATE eikä ryhmää sijoiteta suodatinkontekstiin.
Jokaisella sarakkeella, jolle määrität nimen, on oltava vastaava lauseke. muussa tapauksessa palautetaan virhe. Ensimmäinen argumentti, nimi, määrittää sarakkeen nimen tuloksissa. Toinen argumentti, lauseke, määrittää laskennan, joka suoritetaan arvon saamiseksi kullekin riville kyseisessä sarakkeessa.
groupBy_columnName
on oltava joko taulukossa tai liittyvässä taulukossa.Kukin nimi on kirjoitettava lainausmerkkeihin.
Funktio ryhmittelee valitun rivijoukon yhteenvetorivien joukoksi yhden tai useamman groupBy_columnName sarakkeen arvoilla. Kullekin ryhmälle palautetaan yksi rivi.
GROUPBY käytetään ensisijaisesti koostamiseen DAX taulukkolausekkeiden välituloksista. Mallin fyysisten taulukoiden tehokkaaseen koostamiseen kannattaa käyttää SUMMARIZECOLUMNS tai SUMMARIZE-funktiota.
Tätä funktiota ei tueta DirectQuery-tilassa lasketuissa sarakkeissa tai rivitason suojauksen (RLS) säännöissä käytettäväksi.
CURRENTGROUP kanssa
CURRENTGROUP voidaan käyttää vain lausekkeessa, joka määrittää laajennussarakkeen GROUPBY-funktion sisällä. itse asiassa CURRENTGROUP palauttaa joukon rivejä GROUPBY taulukkoargumentista, jotka kuuluvat GROUPBY tuloksen nykyiseen riviin. CURRENTGROUP-funktio ei saa argumentteja, ja sitä tuetaan vain ensimmäisenä argumenttina yhteen seuraavista koostamisfunktioista: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.
Esimerkki
Seuraavassa esimerkissä lasketaan ensin kokonaismyynti maan ja tuoteluokan mukaan fyysisille taulukoille käyttämällä SUMMARIZECOLUMNS-funktiota. Sen jälkeen se käyttää GROUPBY-funktiota keskitason tuloksen skannaamiseen ensimmäisestä vaiheesta löytääkseen kunkin maan maksimimyynnin eri tuoteluokissa.
DEFINE
VAR SalesByCountryAndCategory =
SUMMARIZECOLUMNS(
Geography[Country],
Product[Category],
"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty])
)
EVALUATE
GROUPBY(
SalesByCountryAndCategory,
Geography[Country],
"Max Sales", MAXX(CURRENTGROUP(), [Total Sales])
)