Gå till huvudinnehåll
Omvandla data

PÅ DEN HÄR SIDAN

Omvandla data

Du kan omvandla och ändra på 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
    Load script window with script to create new table called 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 table in data model viewer.

  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
    New measure with formula.

    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
    Table showing customers that have made large orders.

  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
    Commented out script.

Föregående LOAD

En föregående load 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 infline-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. Transaktioner:  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
    Load script with preceding 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
    New field called transaction_date in data model viewer.