นิพจน์ระดับรายละเอียดทำงานใน 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 นิพจน์ระดับของรายละเอียดที่สร้างการผนวกแบบข้ามนั้นไม่น่าเชื่อถือ

การผนวกแบบข้ามจะเกิดขึ้นเมื่อไม่มีฟิลด์ที่ชัดแจ้งในการผนวก ตัวอย่างเช่น สำหรับนิพจน์ระดับของรายละเอียด {fixed [Product Type] : sum(sales)} เมื่อมุมมองมีเพียงมิติข้อมูลเดียว [โหมดจัดส่ง] Tableau จะสร้างการผนวกแบบข้าม การผนวกแบบข้ามจะสร้างแถวที่รวมแต่ละแถวจากตารางแรกกับแต่ละแถวจากตารางที่สอง

IBM BigInsightsรองรับ
IBM DB2รองรับสำหรับเวอร์ชัน 8.1 และใหม่กว่า
MarkLogicรองรับสำหรับเวอร์ชัน 7.0 และใหม่กว่า
Microsoft Accessไม่รองรับ
การเชื่อมต่อบน Microsoft Jet (ตัวเชื่อมต่อเดิมสำหรับ Microsoft Excel, Microsoft Access และข้อความ)ไม่รองรับ
Microsoft SQL ServerSQL 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)(ลิงก์จะเปิดในหน้าต่างใหม่)

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ