Ga naar hoofdinhoud Ga naar aanvullende inhoud

Mapping gebruiken als alternatief voor joins

Het prefix Join in QlikView is een krachtige manier om meerdere gegevenstabellen te combineren in het gegevensmodel. Een nadeel is dat de gecombineerde tabellen groot kunnen worden, wat leidt tot een lagere snelheid. Een alternatief voor Join in situaties waarin u één waarde moet opzoeken uit een andere tabel, is het gebruik van mapping. U hoeft dan geen onnodige gegevens te laden die de berekeningen trager maken en rekenfouten kunnen veroorzaken omdat joins het aantal records in de tabellen kunnen veranderen.

Een toewijzingstabel bestaat uit twee kolommen: een vergelijkingsveld (invoer) en een veld met de toewijzingswaarde (uitvoer).

In dit voorbeeld hebben we een tabel met orders (Orders) en willen we het land van de klant weten. Dit is opgeslagen in de klantentabel (Customers).

Orders data table
OrderID OrderDate ShipperID Freight CustomerID
12987 2007-12-01 1 27 3
12988 2007-12-01 1 65 4
12989 2007-12-02 2 32 2
12990 2007-12-03 1 76 3
Customers data table
CustomerID Name Country ...
1 DataSales Spain ...
2 BusinessCorp Italy ...
3 TechCo Germany ...
4 Mobecho France ...

Om het land (Country) van een klant op te zoeken, hebben we een toewijzingstabel nodig die er als volgt uitziet:

Country mapping table
CustomerID Country
1 Spain
2 Italy
3 Germany
4 France

De toewijzingstabel die we MapCustomerIDtoCountry noemen, wordt in het -script als volgt gedefinieerd:

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

In de volgende stap passen we de toewijzing toe met de functie ApplyMap tijdens het laden van de tabel met bestellingen:

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

De derde parameter van de functie ApplyMap legt vast wat moet worden geretourneerd als de waarde niet wordt gevonden in de toewijzingstabel, in dit geval Null().

De resulterende tabel ziet er als volgt uit:

Result mapping table
OrderID OrderDate ShipperID Freight CustomerID Country
12987 2007-12-01 1 27 3 Germany
12988 2007-12-01 1 65 4 France
12989 2007-12-02 2 32 2 Italy
12990 2007-12-03 1 76 3 Germany

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!

Neem deel aan het Analytics Modernization Program

Remove banner from view

Moderniseer zonder uw waardevolle QlikView-apps op het spel te zetten met het Analytics Modernization Program. Klik hier voor meer informatie of om contact op te nemen: ampquestions@qlik.com