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

Omvandla data

Du kan omvandla och ändra data med hjälp av många olika tekniker i Skriptredigeraren.

En av fördelarna med datamanipulering är att du kan välja att bara ladda en underuppsättning av data från en fil, t.ex. ett fåtal valda kolumner från en tabell, för att göra datahanteringen mer effektivt. Du kan också ladda data mer än en gång för att dela upp rådata i flera nya logiska tabeller. Du kan ladda data från fler än en källa och slå ihop den till en tabell i Qlik Sense.

I det här avsnittet kommer du att utföra grundläggande dataomvandling med en Resident-load och sedan en Preceding-load.

Resident LOAD

Du kan använda Resident-källpredikatet i en LOAD-sats för att ladda 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.

I det här exemplet kommer du att skapa en ny tabell som heter Sales_Buckets och sedan ladda data från Table1 med hjälp av resident-load. I tabellen Sales_Buckets kommer du att skapa en variabel som heter quantity_threshold och sedan använda en Where-sats för att endast ladda data som uppfyller tröskelvärdet.

  1. Öppna Skriptredigeraren i appen Scripting Tutorial.
  2. klicka på fliken Sales.
  3. Lägg till följande i slutet av skriptet:
  4. SET quantity_threshold = 12000;
    
    					Sales_Buckets:
    					LOAD
    					"Sales Qty" as "High_Quantity",
    					"Item Description" as "Item",
    					"Customer Number" as "Customer"
    					Resident Table1
    					Where ("Sales Qty" > $(quantity_threshold));
    				

    Ditt skript bör se ut så här:

    Laddningsskriptfönstret med skript för att skapa en ny tabell som heter Sales_Buckets

    Laddningsskriptfönstret med skript för att skapa en ny tabell som heter Sales_Buckets.
  5. Klicka på Ladda data.
  6. Öppna datamodellvyn. Du kan se att du har skapat en ny tabell som heter Sales_Buckets med data inlästa enligt de fält som du har angett och den tröskel som du har ställt in.
  7. Sales_Buckets-tabell i datamodellvy

    Sales_Buckets-tabell i datamodellvy.
  8. Lägg till data till en tabell i appen. Lägg till Item och Customer som dimensioner. Lägg till High-Quantity som ett mått som aggregerats på Count och sedan igen på Sum. Lägg sedan till en ny kolumn som ett mått med följande formel:
  9. = Sum(High_Quantity) / Count(High_Quantity)

    Nytt mått med formel

    Nytt mått med formel.

    Tabellen visar till exempel att Customer 10025737 har gjort 4 stora beställningar av High Top Dried Mushrooms, med en genomsnittlig kvantitet på 14 800. För att sortera på data i fälten stänger du redigeringsläget genom att klicka på Klar.

    Tabell som visar kunder som har gjort stora beställningar

    Tabell som visar kunder som har gjort stora beställningar.
  10. Nu när detta exempel är klart kommenterar du ut skriptet för variabeln quantity_threshold och tabellen Sales_Buckets.
  11. Skriptets slut bör nu se ut enligt följande:

    Utkommenterat skript

    Utkommenterat skript.

Föregående LOAD

En föregående laddning gör det möjligt att utföra omvandlingar och använda filter så att du kan ladda data i ett svep. I grunden är det en LOAD-sats som laddas från LOAD- eller SELECT-satsen nedan, utan att en källkvalificerare som From eller Resident anges, 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.

Som nämnts tidigare i den här introduktionskursen kan du ladda data till Qlik Sense med hjälp av LOAD- och SELECT-satser. Varje sådan sats genererar en intern tabell. LOAD används för att ladda data från filer eller från en inline-tabell, medan SELECT används för att ladda data från databaser. Du har använt data från filer i den här introduktionskursen. I det här exemplet kommer du att använda en inline-tabell. Det är dock värt att notera att en föregående load kan användas över en SELECT-sats för att ändra på dina data. Grunderna är desamma, som du ser här med LOAD.

Det här exemplet är inte relaterade till de data som laddas i den här introduktionskursen. Det används bara för att visa hur en föregående load kan se ut. Du kommer att skapa en inline-tabell i Skriptredigeraren som heter Transaktioner. Datumtolkningen görs i den föregående LOAD, där ett nytt fält som heter transaction_date kommer att skapas. Fältet skapas från fältet sale_date.

  1. Skapa en ny app och kalla den för ReformatDate.
  2. Öppna Skriptredigeraren och skapa sedan en ny flik som heter TransactionData.
  3. Lägg till följande skript:
  4. Transactions: 
    Load *,
    Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date;
    Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code 
    3750, 20180830, 23.56, 2, 2038593, L, Red 
    3751, 20180907, 556.31, 6, 203521, m, orange 
    3752, 20180916, 5.75, 1, 5646471, S, blue 
    3753, 20180922, 125.00, 7, 3036491, l, Black 
    3754, 20180922, 484.21, 13, 049681, xs, Red 
    3756, 20180922, 59.18, 2, 2038593, M, Blue 
    3757, 20180923, 177.42, 21, 203521, XL, Black ];

    Ditt skript bör se ut så här:

    Laddningsskript med föregående load

    Laddningsskript med föregående load.
  5. Klicka på Ladda data.
  6. Öppna datamodellvyn. Markera och expandera tabellen Transaktioner. Du kan se att alla fälten har laddats enligt vad som specificerats av * i den föregående load-satsen. Ett nytt fält som heter transaction_date skapades. Fältet har det omformaterade datumet.
  7. Nytt fält som heter transaction_date i datamodellvyn

    Nytt fält som heter transaction_date i datamodellvyn.

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

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!