Läsa in data från en tidigare inläst tabell
Det finns två sätt att ladda och omvandla data från en tabellen som redan har laddats.
- Resident LOAD – där du använder predikatet Resident i en efterföljande LOAD-sats för att ladda en ny tabell.
- Föregående load – där du laddar från föregående LOAD- eller SELECT-sats utan att ange någon källa.
Resident eller föregående LOAD?
I de flesta fall går det att uppnå samma resultat genom att använda någon av metoderna. A föregående LOAD är vanligtvis det snabbare alternativet, men det finns en del fall där du behöver använda en Resident LOAD i stället:
- Om du vill använda Order_by-satsen för att sortera posterna innan LOAD-satsen behandlas.
- Om du vill använda något av följande prefix stöds inte föregående LOAD:
- Crosstable
- Join
- Intervalmatch
Resident LOAD
Du kan använda Resident-predikatet i en LOAD-sats för att läsa in data från en tidigare inläst tabell. Detta är användbart när du vill utföra beräkningar för data som har lästs in med en SELECT-sats där du inte har möjlighet att använda Qlik Sense-funktioner, exempelvis datum eller numerisk värdehantering.
Exempel:
I det här exemplet utförs datatolkningen i Resident-inläsningen eftersom den inte kan utföras i den inledande Crosstable LOAD.
Föregående Load
Du kan använda funktionen föregående load för att ladda en tabell i ett pass, men fortfarande definiera flera övergångar i följd. I grunden är det en LOAD-sats som laddas från LOAD- eller SELECT-satsen nedan, utan att ange en källkvalificerare som From eller Resident som man normalt skulle göra. Du kan stapla valfritt antal LOAD-satser på det här sättet. Satsen nederst kommer att utvärderas först, och sedan satsen ovan, och så vidare tills det översta satsen har utvärderats.
Du kan uppnå samma resultat genom att använda Resident, men i de flesta fall är en föregående LOAD snabbare.
En annan fördel med föregående inläsning är att du kan behålla en beräkning på en plats och återanvända den i LOAD-satser placerade ovan.
Exempel 1: Omvandla data som lästs in med en SELECT-sats
Om du laddar data från en databas med en SELECT-sats kan du inte använda -för Qlik Sense-funktioner att tolka data i SELECT-satsen. Lösningen är att lägga till en LOAD-sats där du utför dataomvandling, ovanför SELECT-satsen.
I det här exemplet tolkar vi data som har sparats som en sträng med hjälp av Qlik Sensefunktionen Date# i en LOAD-sats med föregående SELECT-sats som källa.
Exempel 2: Förenkla ditt skript genom att återanvända beräkningar
I det här exemplet använder vi en beräkning mer än en gång i skriptet:
Genom att introducera beräkningen i ett första pass kan vi återanvända den i Age-funktionen i en föregående LOAD:
Begränsningar för föregående laddningar
- Följande prefix kan inte användas i samband med föregående LOAD: Join, Crosstable och Intervalmatch.
- Om du använder distinct för att ladda unika poster måste du placera distinct i den första load-satsen, eftersom distinct bara inverkar på destinationstabellen.