คำสั่ง 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 ได้
ความคิดเห็น
แสดงความคิดเห็น