Gegevens opschonen
Bij het laden van gegevens uit verschillende tabellen zult u merken dat de namen van veldwaarden die hetzelfde betekenen niet altijd consistent zijn. Dit is niet alleen vervelend, maar staat ook associaties in de weg. Dit probleem moet dan ook worden opgelost. Dit kunt u op elegante wijze doen door een toewijzingstabel te maken om veldwaarden te vergelijken.
Tabellen toewijzen
Tabellen die zijn geladen met behulp van mapping load of mapping select worden anders behandeld dan andere tabellen. Ze worden in een afzonderlijk gebied van het geheugen opgeslagen en uitsluitend als toewijzingstabellen gebruikt tijdens de uitvoering van het script. Na uitvoering van het script worden ze automatisch gewist.
Regels:
- Een toewijzingstabel moet uit twee kolommen bestaan, de eerste met vergelijkingswaarden en de tweede met de gewenste toewijzingswaarden.
- De twee kolommen moeten een naam hebben, waarbij de namen op zichzelf niet van belang zijn. De kolomnamen hebben geen verbinding met veldnamen in reguliere interne tabellen.
Een toewijzingstabel gebruiken
Bij het laden van verschillende tabellen met namen van landen komt u erachter dat hetzelfde land soms verschillende namen heeft. In dit voorbeeld wordt de V.S. US, U.S. en United States genoemd.
Om te voorkomen dat drie verschillende records voor de Verenigde Staten in de aaneengeschakelde tabel verschijnen, kunt u een tabel maken zoals in de afbeelding wordt weergegeven en deze als toewijzingstabel laden.
Het hele script moet er als volgt uitzien:
CountryMap:
Mapping LOAD x,y from MappingTable.txt
(ansi, txt, delimiter is ',', embedded
labels);
Map Country using CountryMap;
LOAD Country,City from CountryA.txt
(ansi, txt, delimiter is ',', embedded labels);
LOAD Country, City from CountryB.txt
(ansi, txt, delimiter is ',', embedded labels);
Met de opdracht mapping wordt het bestand MappingTable.txt geladen als een toewijzingstabel met het label CountryMap.
De opdracht map maakt toewijzing van het veld Country mogelijk met behulp van de eerder geladen toewijzingstabel CountryMap.
Met de opdrachten LOAD worden de tabellen CountryA en CountryB geladen. In deze tabellen, die worden aaneengeschakeld omdat ze dezelfde set velden bevatten, is het veld Country opgenomen. De veldwaarden van dit veld worden vergeleken met de waarden in de eerste kolom van de toewijzingstabel. Er wordt gezocht naar de veldwaarden US, U.S. en United States, en deze worden vervangen door de waarden in de tweede kolom van de toewijzingstabel, namelijk USA.
De automatische toewijzing gebeurt als laatste in de reeks gebeurtenissen die tot de opslag van het veld in de Qlik Sense-tabel leiden. Voor een typische LOAD- of SELECT-instructie ziet de volgorde van de gebeurtenissen er in grote lijnen als volgt uit:
- Evaluatie van uitdrukkingen
- Namen van velden wijzigen met as
- Namen van velden wijzigen met alias
- Kwalificatie van tabelnaam (indien van toepassing)
- Toewijzing van gegevens als veldnamen overeenkomen
Toewijzing vindt dus niet steeds plaats wanneer een veldnaam wordt aangetroffen als onderdeel van een uitdrukking, maar wanneer de waarde wordt opgeslagen onder de veldnaam in de Qlik Sense-tabel.
Gebruik de opdracht unmap om de toewijzingsfunctie uit te schakelen.
Voor toewijzing op uitdrukkingsniveau, wordt de functie applymap gebruikt.
Voor toewijzing op subtekenreeksniveau, wordt de functie mapsubstring gebruikt.