คำสั่ง Qlik Sense เรื่อง Data Load Editor and Attach File (คำสั่ง Qualify และ unQualify)

Qualify และ  unQualify

คือ การกำหนดให้ระบบ ตรวจสอบว่า มีชือฟิลด์ใด ซ้ำกับ Table อื่นหรือไม่  ถ้าชื่อ Field ซ้ำ ระบบจะตั้งชื่อเป็น Table.Field ให้แทน โดยคำสั่ง UnQualify เป็นคำสั่งปิดไม่ให้ทำนั่นเอง

ชุดคำสั่งการสร้างชื่อ Table แบบใช้ Prefix ชื่อ Table ช่วย ยกตัวอย่างเช่น

Qualify *;
New_Table_Name :
Load *
Resident Old_Table_name ;
Drop Table Old_Table_Name


Load and Select
เริ่มต้นเราจะใช้การ Load ข้อมูล ก่อนที่เราจะ Select  โดยเริ่มต้นเราจะเข้าไป กด+ ในหน้าต่าง Scritp ก่อน

ท่าพื้นฐานคือ 
Table1:  //กำหนดชื่อตารางที่กำลังจะโหลด
Load 
 Column_name1,
 Column_name2
From [lib://DataFlie/xxxx.xls]
(ooxml.embeded labels.table is [New Table]

อย่างไรก็ดี หาก Table มี ข้อมูล Date หรือวันที่ เราควรสร้างตารางแยกดังนี้
Date:
Load
   "Date",
  Month(Date) as "Month"
From [lib://DataFlie/xxxx.xls]
(ooxml.embeded labels.table is [New Table]

Resident 
การแบ่งข้อมูลดิบออกมาเพื่อทำงาน  จากตัวอย่างเราจะแบ่งข้อมูลจาก Table 1 ออกมาทำงาน
Sale:
Load 
    "Sale Qty" as "Sale" ,
    "Item Description" as "Item" ,
Resident Table1
Where ("Sale Qty" > $(quantity_threshold)); //สังเกตดู ยังใช้ชื่อเดิมก่อนเปลี่ยนไปก่อน

การต่อตาราง
โดยปกติ หากเราไม่ระบุอะไรเลย โปรแกรมจะต่อไฟล์กันให้โดยอัตโนมัติ แต่หากต้องการบังคับ เราจะใช้คำสั่ง Concatenate Load และป้องกันการต่อกันด้วย NoConcatenate Load

การวนลูปของข้อมูล

ตารางอาจมีการวนลูปได้ เช่น TableA , FieldA Map FieldB TableB  แต่มี TableA , FieldC map FieldCV Table C อีกแล้ว สุดท้าย Table C Map กับ Table B อีกรอบ

คำแนะนำคือให้ลบ Table นั้นออก  หรือหากต้องใช้งานให้ไม่เก็บ Column ที่ซ้ำมาด้วย

การต่อตารางด้วย Join และ Keep
Join
คำสั่งง่ายสุดคือ

LOAD a, b, c from table1.csv;
join LOAD a, d from table2.csv;

อย่างไรก็ดี หากต้องการเขียนเช่นด้านบน ชื่อ Column ต้องเหมือนกัน มันจะ Mapping ตัวที่ชื่อ Column เหมือนกันเอง


VTable:
SELECT * from Table1;
left join SELECT * from Table2;

Mapping
ถ้าเราใช้ Join รวมถึง Left Join ด้วย เมื่อเราแมปหลายๆ ค่า มันจะได้ค่า Duplicate ขึ้นมาแทน เขาแนะนำให้ใช้ ApplyMap แทน

คำสั่งจะประมาณนี้ (มี 2 Step คือ โหลดตาราง Map (ตารางแรก) และ ผลจาก ตารางแมป)
   MapCustomerIDtoCountry:

     Mapping
      Load CustomerID, Country From Customers ;

     Orders:

     Load *,

          ApplyMap('Mapping Table Name', CustomerID, null() ) as Country

          From Orders;


การแนบไฟล์ใหม่ (Attach File)
จะมีข้อจำกัด 1. ขนาดไฟล์ไม่เกิน 50Mb 2. พื้นที่รวมไม่เกิน 200Mb และไม่สามารถแนบไฟล์ Qlik Sense Desktop ได้

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Qlik Sense : Bar Chart กราฟแท่ง