นิพจน์ระดับรายละเอียดทำงานใน Tableau อย่างไร
บทความนี้จะอธิบายว่านิพจน์ระดับรายละเอียดนั้นจะคำนวณอย่างไรและทำงานใน Tableau อย่างไร สำหรับข้อมูลเพิ่มเติมเกี่ยวกับนิพจน์ LOD และวิธีการทำงานของนิพจน์นี้ โปรดดูที่เอกสาร การทำความเข้าใจนิพจน์ระดับของรายละเอียด (LOD)(ลิงก์จะเปิดในหน้าต่างใหม่) บนเว็บไซต์ของ Tableau
แถวนิพจน์ระดับและนการดูนิพจน์ระดับ
ใน Tableau นิพจน์ที่อ้างอิงคอลัมน์แหล่งข้อมูลที่ไม่ได้รวบรวมนั้นจะถูกคำนวณสำหรับแต่ละแถวในตารางเบื้องหลัง ในกรณีนี้ มิติของนิพจน์นั้นคือระดับแถว ตัวอย่างของนิพจน์ระดับแถวคือ:
[Sales] / [Profit]
การคำนวณนี้จะถูกนำไปใช้ในแต่ละแถวของฐานข้อมูล สำหรับแต่ละแถว ค่ายอดขายในแถวนั้นจะถูกหารด้วยค่ากำไรในแถว เกิดเป็นคอลัมน์ใหม่ที่มีผลลัพธ์ของการคูณ (สัดส่วนกำไร)
หากคุณสร้างการคำนวณด้วยการกำหนดค่านี้ ให้บันทึกไว้ในชื่อ [สัดส่วนกำไร] และจากนั้นลากจากแผงข้อมูลไปยังแถบ โดยทั่วไปแล้ว Tableau จะรวมฟิลด์ที่คำนวณของมุมมองนั้น:
SUM([ProfitRatio])
ในทางกลับกัน นิพจน์ที่อ้างอิงคอลัมน์แหล่งข้อมูลที่รวบรวมจะถูกคำนวณในระดับมิติที่กำหนดโดยมิติข้อมูลในมุมมอง ในกรณีนี้ มิติของนิพจน์นั้นคือระดับมุมมอง ตัวอย่างของนิพจน์ระดับมุมมองคือ:
SUM(Sales) / SUM(Profit)
หากคุณลากการคำนวณนี้ไปยังแถบ (หรือพิมพ์ลงในแถบโดยตรงเป็นการคำนวณเฉพาะกิจ) Tableau จะรวมการคำนวณนี้ไปกับฟังก์ชัน AGG:
AGG(SUM(Sales) / SUM(Profit))
สิ่งนี้นั้นเรียกว่าการคำนวณรวม สำหรับรายละเอียด โปรดดูที่ ฟังก์ชันการรวบรวมใน Tableau(ลิงก์จะเปิดในหน้าต่างใหม่)
มิติข้อมูลและฟิลด์ที่ตั้งไว้ที่อยู่ที่ตำแหน่งต่างๆ ที่ไฮไลต์ไว้ในภาพต่อไปนี้นั้นแสดงถึงระดับของรายละเอียดของมุมมอง:
ก่อนที่ Tableau จะรองรับนิพจน์ระดับของรายละเอียด การสร้างการคำนวณที่ระดับของรายละเอียดนอกเหนือไปจากระดับมุมมองนั้นเป็นสิ่งที่เป็นไปไม่ได้ ตัวอย่างเช่น หากคุณต้องการบันทึกนิพจน์ต่อไปนี้ Tableau จะแสดงข้อความบ่งบอกข้อผิดพลาดว่า: “ไม่สามารถรวมอาร์กิวเมนต์แบบรวมและแบบไม่รวมเข้ากันด้วยฟังก์ชันนี้ได้”
[Sales] – AVG([Sales])
ความต้องการของผู้ใช้ในกรณีนี้คือการเปรียบเทียบยอดขายของร้านแต่ละสาขากับยอดขายโดยเฉลี่ยของทุกสาขา โดยสามารถทำได้แล้วโดยใช้นิพจน์ระดับรายละเอียด:
[Sales] - {AVG([Sales])}
สิ่งนี้นั้นเรียกว่านิพจน์ระดับรายละเอียดระดับตาราง โปรดดูที่ ระดับตาราง
ขีดจำกัดของนิพจน์ระดับรายละเอียด
ต่อไปนี้คือขีดจำกัดและข้อจำกัดของนิพจน์ระดับรายละเอียด และโปรดดูได้ที่ ข้อจำกัดแหล่งข้อมูลสำหรับนิพจน์ระดับของรายละเอียด
นิพจน์ระดับรายละเอียดที่อ้างอิงการวัดผลแบบจุดลอยตัวนั้นอาจไม่สามารถเชื่อถือได้เมื่อใช้งานในมุมมองที่ต้องมีการเปรียบเทียบค่าต่างๆ ในนิพจน์ หากต้องการรายละเอียด โปรดดูการทำความเข้าใจประเภทข้อมูลในการคำนวณ(ลิงก์จะเปิดในหน้าต่างใหม่)
นิพจน์ระดับรายละเอียดนั้นจะไม่แสดงในหน้าแหล่งข้อมูล ดู หน้าแหล่งข้อมูล
เมื่ออ้างอิงพารามิเตอร์ในการอธิบายมิติข้อมูล โปรดใช้ชื่อของพารามิเตอร์เสมอ ไม่ใช่ค่าของพารามิเตอร์
ด้วยการผสานข้อมูล ฟิลด์ข้อมูลที่เชื่อมโยงกันจากแหล่งข้อมูลหลักจะต้องอยู่ในมุมมองก่อนที่คุณจะสามารถใช้นิพจน์ระดับรายละเอียดจากแหล่งข้อมูลรองได้ โปรดดูที่ แก้ปัญหาการผสานข้อมูล
นอกจากนี้ แหล่งข้อมูลบางอย่างยังมีข้อจำกัดด้านความซับซ้อนอีกด้วย Tableau จะไม่ปิดใช้งานการคำนวณสำหรับฐานข้อมูลเหล่านี้ แต่อาจเกิดข้อผิดพลาดในการค้นหาได้หากการคำนวณมีความซับซ้อนเกินไป
นิพจน์ระดับรายละเอียดสามารถเป็นได้ทั้งมิติข้อมูลหรือการวัดผล
เมื่อคุณบันทึกนิพจน์ระดับของรายละเอียด Tableau จะเพิ่มนิพจน์นั้นไปยังมิติข้อมูลหรือพื้นที่การวัดผลในแผงข้อมูล
นิพจน์ระดับรายละเอียด FIXED อาจให้ผลลัพธ์เป็นการวัดผลหรือมิติข้อมูล โดยขึ้นอยู่กับฟิลด์ข้อมูลเบื้องหลังในนิพจน์ที่รวม ดังนั้น MIN([Date])} จะเป็นมิติข้อมูลเนื่องจาก [Date] คือมิติข้อมูล และ {fixed Store : SUM([Sales])} จะเป็นการวัดผลเนื่องจาก [Sales] คือการวัดผล เมื่อนิพจน์ระดับรายละเอียด FIXED นั้นถูกบันทึกเป็นการวัดผล คุณจะมีตัวเลือกในการย้ายนิพจน์นี้ไปสู่มิติข้อมูล
นิพจน์ระดับรายละเอียด INCLUDE และ EXCLUDE นั้นเป็นการวัดผลเสมอ
ตัวกรองและนิพจน์ระดับของรายละเอียด
มีตัวกรองหลายประเภทใน Tableau โดยจะได้รับการดำเนินการตามลำดับต่อไปนี้จากบนลงล่าง
ข้อความทางด้านขวาจะแสดงว่านิพจน์ระดับของรายละเอียดได้รับการประเมินในลำดับนี้ที่จุดใด
ตัวกรองการแยกข้อมูล (สีส้ม) จะมีความเกี่ยวข้องเฉพาะเมื่อคุณสร้างการแยกข้อมูล Tableau จากแหล่งข้อมูล ตัวกรองการคำนวณตาราง (สีน้ำเงินเข้ม) จะถูกนำไปใช้หลังจากดำเนินการคำนวณแล้ว จึงมีการซ่อนเครื่องหมายโดยไม่กรองข้อมูลเบื้องหลังที่ใช้ในการคำนวณออก
หากคุณคุ้นเคยกับ SQL คุณสามารถมองว่าตัวกรองการวัดผลเท่ากับคำสั่ง HAVING ในการค้นหาได้ ส่วนตัวกรองมิติข้อมูลจะเทียบเท่ากับคำสั่ง WHERE
การคำนวณ FIXED จะถูกนำไปใช้ก่อนตัวกรองมิติข้อมูล หากคุณไม่เลื่อนระดับฟิลด์บนแผงตัวกรองของคุณเป็นใช้ตัวกรองบริบท ฟิลด์เหล่านั้นก็จะถูกละเว้น ตัวอย่างเช่น พิจารณาว่าคุณมีการคำนวณต่อไปนี้ในแถบหรือแผงหนึ่งในมุมมอง และมี [รัฐ] ในแถบหรือแผงอื่น:
SUM([Sales]) / ATTR({FIXED : SUM([Sales])})
การคำนวณนี้จะให้ค่าอัตราส่วนยอดขายของรัฐต่อยอดขายทั้งหมด
จากนั้น หากคุณใส่ [รัฐ] บนแผงตัวกรองเพื่อซ่อนรัฐบางส่วน ตัวกรองจะมีผลกับตัวเศษในการคำนวณเท่านั้น เนื่องจากตัวส่วนเป็นนิพจน์ระดับของรายละเอียด FIXED ตัวส่วนจึงจะหารยอดขายสำหรับรัฐที่ยังคงอยู่ในมุมมองกับยอดขายรวมของทุกรัฐ รวมถึงยอดขายที่ถูกกรองออกจากมุมมองด้วย
จะมีการพิจารณาใช้นิพจน์ระดับของรายละเอียด INCLUDE และ EXCLUDE หลังตัวกรองมิติข้อมูล ดังนั้น หากคุณต้องการให้มีการนำตัวกรองไปใช้กับนิพจน์ระดับของรายละเอียด FIXED แต่ไม่ต้องการใช้ตัวกรองบริบท ให้ลองเขียนใหม่เป็นนิพจน์ INCLUDE หรือ EXCLUDE
การรวมและนิพจน์ระดับรายละเอียด
ระดับของรายละเอียดของมุมมองเป็นตัวกำหนดจำนวนเครื่องหมายในมุมมองของคุณ เมื่อคุณเพิ่มนิพจน์ระดับของรายละเอียดลงในมุมมอง Tableau จะต้องปรับระดับของรายละเอียดสองรายการให้สอดคล้องกัน โดยระดับหนึ่งอยู่ในมุมมอง ส่วนอีกระดับอยู่ในนิพจน์ของคุณ
ลักษณะการทำงานของนิพจน์ระดับของรายละเอียดในมุมมองจะแตกต่างกันไปขึ้นอยู่กับว่าระดับของรายละเอียดของนิพจน์นั้นหยาบกว่า ละเอียดกว่า หรือเท่ากับระดับของรายละเอียดในมุมมอง คำว่า “หยาบกว่า” หรือ “ละเอียดกว่า” ในกรณีนี้หมายถึงอะไร
นิพจน์ระดับของรายละเอียดนั้นหยาบกว่าระดับของรายละเอียดของมุมมอง
นิพจน์มีระดับของรายละเอียดที่หยาบกว่ามุมมองเมื่ออ้างอิงสับเซ็ตของมิติข้อมูลในมุมมอง ตัวอย่างเช่น สำหรับมุมมองที่มีมิติข้อมูล [หมวดหมู่] และ [เซกเมนต์] คุณสามารถสร้างนิพจน์ระดับของรายละเอียดที่ใช้เฉพาะหนึ่งในมิติข้อมูลเหล่านี้ได้:
{FIXED [Segment] : SUM([Sales])}
ในกรณีนี้ นิพจน์จะมีระดับของรายละเอียดที่หยาบกว่ามุมมอง โดยนิพจน์จะยึดตามค่าในมิติข้อมูลหนึ่ง ([เซกต์เมนต์]) ในขณะที่มุมมองนั้นจะยึดค่ามุมมองตามมิติข้อมูลสองรายการ ได้แก่ ([เซกเมนต์] และ [หมวดหมู่])
ผลลัพธ์คือการใช้นิพจน์ระดับของรายละเอียดในมุมมองจะทำให้ค่าบางอย่างถูกจำลองขึ้น นั่นคือ ปรากฏขึ้นหลายครั้ง
ค่าที่จำลองขึ้นมีประโยชน์สำหรับการเปรียบเทียบค่าที่เฉพาะเจาะจงกับค่าเฉลี่ยภายในหมวดหมู่หนึ่ง ตัวอย่างเช่น การคำนวณต่อไปนี้จะลบยอดขายเฉลี่ยของลูกค้าหนึ่งรายออกจากยอดขายเฉลี่ยโดยรวม:
[Sales] - {FIXED [Customer Name] : AVG([Sales])}
เมื่อมีการจำลองค่าขึ้น การเปลี่ยนการรวมสำหรับฟิลด์ที่เกี่ยวข้องในมุมมอง (เช่น จาก AVG เป็น SUM) จะไม่เปลี่ยนผลลัพธ์ของการรวม
นิพจน์ระดับของรายละเอียดนั้นละเอียดกว่าระดับของรายละเอียดของมุมมอง
นิพจน์มีระดับของรายละเอียดที่ละเอียดกว่ามุมมองเมื่ออ้างอิงซูเปอร์เซ็ตของมิติข้อมูลในมุมมอง เมื่อคุณใช้นิพจน์ดังกล่าวในมุมมอง Tableau จะรวมผลลัพธ์จนถึงระดับมุมมอง ตัวอย่างเช่น นิพจน์ระดับของรายละเอียดต่อไปนี้จะอ้างอิงมิติข้อมูลสองรายการ:
{FIXED [Segment], [Category] : SUM([Sales])}
เมื่อใช้นิพจน์นี้ในมุมมองที่มีเฉพาะ [เซกเมนต์] เป็นระดับของรายละเอียด ค่านั้นจะต้องได้รับการรวม นี่คือสิ่งที่คุณจะเห็นหากคุณลากนิพจน์นั้นไปที่แถบหรือแผง:
AVG([{FIXED [Segment]], [Category]] : SUM([Sales]])}])
การรวมซึ่งในกรณีนี้คือค่าเฉลี่ยจะถูกมอบหมายโดย Tableau โดยอัตโนมัติ คุณสามารถเปลี่ยนการรวมได้ตามต้องการ
การเพิ่มนิพจน์ระดับของรายละเอียดลงในมุมมอง
นิพจน์ระดับของรายละเอียดจะถูกรวมหรือจำลองในมุมมองหรือไม่นั้นจะพิจารณาจากประเภทนิพจน์ (FIXED, INCLUDE หรือ EXCLUDE) และขึ้นอยู่กับว่ามุมมองแบบละเอียดของนิพจน์นั้นหยาบกว่าหรือละเอียดกว่าความละเอียดของมุมมอง
นิพจน์ระดับของรายละเอียด INCLUDE จะมีระดับของรายละเอียดเดียวกับมุมมองหรือละเอียดกว่ามุมมอง ดังนั้น ค่าจะไม่ถูกจำลองขึ้น
นิพจน์ระดับของรายละเอียด FIXED อาจมีระดับของรายละเอียดที่ละเอียดกว่ามุมมอง หยาบกว่า หรืออยู่ในระดับเดียวกันก็ได้ การรวมผลลัพธ์ของระดับของรายละเอียด FIXED จะจำเป็นหรือไม่นั้นขึ้นอยู่กับว่ามิติข้อมูลใดบ้างที่อยู่ในมุมมอง
นิพจน์ระดับของรายละเอียด EXCLUDE จะทำให้ค่าที่จำลองปรากฏขึ้นในมุมมองเสมอ เมื่อมีการวางการคำนวณที่มีนิพจน์ระดับของรายละเอียด EXCLUDE ไว้บนแถบหรือแผง Tableau จะมีค่าเริ่มต้นเป็นการรวม ATTR (ตรงข้ามกับ SUM หรือ AVG) เพื่อระบุว่านิพจน์นั้นจะไม่ได้ถูกรวมเข้าด้วยกันจริงๆ และการเปลี่ยนแปลงการรวมจะไม่มีผลกับมุมมอง
นิพจน์ระดับของรายละเอียดจะถูกห่อหุ้มโดยอัตโนมัติเสมอเมื่อถูกเพิ่มไปยังแถบหรือแผงในมุมมอง เว้นแต่ว่าจะใช้เป็นมิติข้อมูล ดังนั้นหากคุณดับเบิลคลิกที่แถบหรือแผงแล้วพิมพ์
{FIXED[Segment], [Category] : SUM([Sales])}
จากนั้นกด Enter เพื่อยืนยันนิพจน์ สิ่งที่คุณจะเห็นบนแถบหรือแผงตอนนี้คือ
SUM({FIXED[Segment], [Category] : SUM([Sales])})
แต่หากคุณดับเบิลคลิกเข้าไปในแถบหรือแผงเพื่อแก้ไขนิพจน์ สิ่งที่คุณจะเห็นในโหมดแก้ไขคือนิพจน์ดั้งเดิม
หากคุณห่อหุ้มนิพจน์ระดับของรายละเอียดในการรวมเมื่อทำการสร้าง Tableau จะใช้การรวมที่คุณระบุแทนที่จะมอบหมายการรวมให้เมื่อมีการวางการคำนวณใดๆ รวมถึงนิพจน์นั้นบนแถบหรือแผง เมื่อไม่ต้องการการรวม (เนื่องจากระดับของรายละเอียดของนิพจน์นั้นหยาบกว่ามุมมอง) การรวมที่คุณระบุจะยังคงแสดงเมื่อนิพจน์อยู่บนแถบหรือแผง แต่จะถูกละเว้น
ข้อจำกัดแหล่งข้อมูลสำหรับนิพจน์ระดับของรายละเอียด
สำหรับแหล่งข้อมูลบางอย่าง เฉพาะเวอร์ชันที่ใหม่กว่าเท่านั้นที่รองรับนิพจน์ระดับของรายละเอียด แหล่งข้อมูลบางอย่างไม่รองรับนิพจน์ระดับของรายละเอียดเลย
นอกจากนี้ แหล่งข้อมูลบางอย่างยังมีข้อจำกัดด้านความซับซ้อนอีกด้วย Tableau จะไม่ปิดใช้งานการคำนวณสำหรับฐานข้อมูลเหล่านี้ แต่อาจเกิดข้อผิดพลาดในการค้นหาได้หากการคำนวณมีความซับซ้อนเกินไป
แหล่งข้อมูล | การสนับสนุน |
Actian Vectorwise | ไม่รองรับ |
Amazon EMR Hadoop Hive | รองรับสำหรับ Hive 0.13 และใหม่กว่า |
Amazon Redshift | รองรับ |
ฐานข้อมูล Aster | รองรับสำหรับเวอร์ชัน 4.5 และใหม่กว่า |
Cloudera Hadoop | รองรับสำหรับ Hive 0.13 และใหม่กว่า |
Cloudera Impala | รองรับสำหรับ Impala 1.2.2 และใหม่กว่า |
Cubes (แหล่งข้อมูลแบบหลายมิติข้อมูล) | ไม่รองรับ |
DataStax Enterprise | ไม่รองรับ |
EXASOL | รองรับ |
Firebird | รองรับสำหรับเวอร์ชัน 2.0 และใหม่กว่า |
ODBC ทั่วไป | จำกัด ขึ้นอยู่กับแหล่งข้อมูลที่เฉพาะเจาะจง |
Google Big Query | รองรับสำหรับ SQL มาตรฐาน ไม่รองรับ SQL รุ่นเก่า |
Hortonworks Hadoop Hive | รองรับสำหรับ Hive 0.13 และใหม่กว่า ในเวอร์ชัน 1.1 HIVE นิพจน์ระดับของรายละเอียดที่สร้างการผนวกแบบข้ามนั้นไม่น่าเชื่อถือ การผนวกแบบข้ามจะเกิดขึ้นเมื่อไม่มีฟิลด์ที่ชัดแจ้งในการผนวก ตัวอย่างเช่น สำหรับนิพจน์ระดับของรายละเอียด |
IBM BigInsights | รองรับ |
IBM DB2 | รองรับสำหรับเวอร์ชัน 8.1 และใหม่กว่า |
MarkLogic | รองรับสำหรับเวอร์ชัน 7.0 และใหม่กว่า |
Microsoft Access | ไม่รองรับ |
การเชื่อมต่อบน Microsoft Jet (ตัวเชื่อมต่อเดิมสำหรับ Microsoft Excel, Microsoft Access และข้อความ) | ไม่รองรับ |
Microsoft SQL Server | SQL Server 2005 และใหม่กว่า |
MySQL | รองรับ |
IBM PDA (Netezza) | รองรับเวอร์ชัน 7.0 และใหม่กว่า |
Oracle | รองรับเวอร์ชัน 9i และใหม่กว่า |
Actian Matrix (ParAccel) | รองรับเวอร์ชัน 3.1 และใหม่กว่า |
Pivotal Greenplum | รองรับสำหรับเวอร์ชัน 3.1 และใหม่กว่า |
PostgreSQL | รองรับเวอร์ชัน 7 และใหม่กว่า |
Progress OpenEdge | รองรับ |
SAP HANA | รองรับ |
SAP Sybase ASE | รองรับ |
SAP Sybase IQ | รองรับเวอร์ชัน 15.1 และใหม่กว่า |
Spark SQL | รองรับ |
Splunk | ไม่รองรับ |
การแยกข้อมูลใน Tableau | รองรับ |
Teradata | รองรับ |
Vertica | รองรับสำหรับเวอร์ชัน 6.1 และใหม่กว่า |
ดูเพิ่มเติม
สร้างนิพจน์ระดับรายละเอียดใน Tableau
การทำความเข้าใจนิพจน์ระดับรายละเอียด (LOD)(ลิงก์จะเปิดในหน้าต่างใหม่)