Gå till huvudinnehåll Gå till ytterligare innehåll

Använda mappning som ett alternativ till länkning

Join-prefixet i Qlik Sense är ett kraftfullt sätt att kombinera flera datatabeller i datamodellen.

En nackdel är att de kombinerade tabellerna kan bli stora och skapa prestandaproblem. Ett alternativ till Join i situationer när du behöver slå upp ett enda värde från en annan tabell är att använda mappning i stället. Detta kan göra så att du slipper läsa in onödiga data som gör beräkningarna långsammare och kan skapa beräkningsfel, eftersom joins kan ändra antalet poster i tabellerna.

En mappningstabell består av två kolumner: ett jämförelsefält (indata) och ett mappningsvärdesfält (utdata).

I det här exemplet har vi en tabell med order (Orders) och behöver veta kundens länder, som finns lagrade i kundtabellen (Customers).

Orders-datatabell
OrderIDOrderDateShipperIDFreightCustomerID
129872007-12-011273
129882007-12-011654
129892007-12-022322
129902007-12-031763
Customers-datatabell
CustomerIDNamnLand...
1DataSalesSpanien...
2BusinessCorpItalien...
3TechCoTyskland...
4MobechoFrankrike...

För att slå upp landet (Country) för en kund behöver vi en mappningstabell som ser ut så här:

Mappningstabell
CustomerIDLand
1Spanien
2Italien
3Tyskland
4Frankrike

Mappningstabellen, som vi kallar MapCustomerIDtoCountry, är definierad i skriptet enligt följande:

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

Nästa steg är att tillämpa mappningen med hjälp av funktionen ApplyMap när vi laddar sorteringstabellen:

Orders: LOAD *, ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country From Orders ;

Den tredje parametern av funktionen ApplyMap används för att definiera vad som ska returneras när ett värde inte hittas i mappningstabellen, i det här fallet Null().

Tabellen som skapas ser ut så här:

Resultattabell
OrderIDOrderDateShipperIDFreightCustomerIDLand
129872007-12-011273Tyskland
129882007-12-011654Frankrike
129892007-12-022322Italien
129902007-12-031763Tyskland

Mer information

 

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!