ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้ว่า ฟังก์ชัน ทำงานอย่างไรใน DAX โดยใช้บานหน้าต่างเวลาเซิร์ฟเวอร์และแผนการสืบค้น

สามารถใช้ฟังก์ชัน CROSSJOIN เพื่อสร้างผลิตภัณฑ์คาร์ทีเซียนของสองตาราง ผลคูณคาร์ทีเซียนคือชุดของแถวที่เป็นไปได้ทั้งหมดจากสองตารางขึ้นไป

รหัสDAXด้านล่างจะใช้ในบทช่วยสอนนี้

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

คุณจะเห็นว่าฟังก์ชัน CROSSJOIN ส่งผลให้เกิดการ ผสมกันระหว่างยี่ห้อสินค้าและสี แม้ว่าบางชุดค่าผสมเหล่านี้จะไม่มีอยู่ในตารางข้อเท็จจริงก็ตาม ส่งผลให้ตารางมีทั้งหมด 176 แถว

ในแท็บ Server Timings ข้อความค้นหาแรกจะดึงข้อมูลแบรนด์จากตารางผลิตภัณฑ์ ขณะที่ข้อความค้นหาที่สองจะดึงข้อมูลสี

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ในLogical Query Planบรรทัดแรกส่งคืนผลลัพธ์ในรูปแบบตาราง บรรทัดที่สองและสามในตารางผลิตภัณฑ์จะสแกนสีและยี่ห้อตามลำดับ

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

เมื่อได้รับข้อมูลแล้ว Formula Engine จะวนซ้ำตารางและสร้างการรวมกันของทั้งสองคอลัมน์ CrossApply ในบรรทัดที่ 2 สอดคล้องกับฟังก์ชัน CROSSJOIN

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

สารบัญ

กรองผลลัพธ์ CROSSJOIN ใน DAX

คุณสามารถใช้ ฟังก์ชัน เพื่อกรองผลลัพธ์ของ CROSSJOIN ตัวอย่างเช่น คุณอาจใช้เพื่อแสดงเฉพาะผลิตภัณฑ์ที่เป็นสีแดง

อย่างไรก็ตาม โปรดจำไว้ว่า คุณไม่สามารถวางฟังก์ชัน CROSSJOIN ภายในอาร์กิวเมนต์ FILTER

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ตอนนี้ หากคุณรันโค้ดนี้และตรวจสอบแท็บ Server Timings คุณจะเห็นว่าบริบทของตัวกรองไม่ปรากฏเป็นคำสั่งย่อย WHERE ในแบบสอบถาม

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ฟังก์ชัน CROSSJOIN สามารถแก้ไขได้โดยFormula Engine เท่านั้น รหัสใช้งานไม่ได้เนื่องจากอยู่ระหว่าง FILTER และซึ่งเป็นฟังก์ชันที่สามารถแก้ไขได้โดยStorage Engineเท่านั้น ดังนั้น CROSSJOIN ทำให้เกิดการวนซ้ำระหว่างสองฟังก์ชันนี้

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ดังนั้น คุณต้องวางฟังก์ชัน FILTER ไว้ในอาร์กิวเมนต์ CROSSJOIN เพื่อให้ตัวกรองทำงานได้

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ตอนนี้ถ้าคุณรันโค้ดนี้และตรวจสอบแท็บ Server Timings คุณจะเห็นว่าตอนนี้ฟังก์ชัน FILTER ถูกแทนด้วยส่วนคำสั่ง WHERE

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ใน Logical Query Plan คุณจะเห็นว่า มีการใช้Filter VertiPaqแทน Filter Operator

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

นี่เป็นเพราะเงื่อนไขการกรองใหม่ในรหัสสามารถถูกผลักลงไปที่ Storage Engine หลังจากส่งคืนผลลัพธ์ อาร์กิวเมนต์ CROSSJOIN จะถูกดำเนินการภายใน Formula Engine

ผู้ประกอบการใน

คุณยังสามารถใช้ ตัวดำเนินการ แทนเครื่องหมายเท่ากับในอาร์กิวเมนต์ FILTER

สามารถใช้ตัวดำเนินการ IN ภายในอาร์กิวเมนต์นิพจน์ของฟังก์ชัน FILTER เพื่อกรองตารางโดยขึ้นอยู่กับว่าค่านั้นอยู่ในรายการค่าหรือภายในตาราง

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

เมื่อคุณใช้การ รวม FILTER – INเอ็นจิน DAX ต้องทำตัว กรอง IsEmptyซึ่งจะยืนยันว่าสีของผลิตภัณฑ์เป็นสีแดงหรือสีดำ

เพิ่มคอลัมน์ยอดขายรวมในผลลัพธ์ CROSSJOIN DAX

ฟังก์ชั่นอื่นๆ สามารถใช้ร่วมกับ CROSSJOIN ได้

คุณสามารถใช้ ฟังก์ชัน เพื่อเพิ่มคอลัมน์อื่นในตารางของคุณ จากนั้นจึงเขียนอาร์กิวเมนต์ของข้อมูลที่คุณต้องการแสดง

ในตัวอย่างนี้ ลองเพิ่มคอลัมน์ยอดขายรวม

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

เมื่อคุณรันโค้ด ผลลัพธ์จะยังคงคืนค่า 176 แถว อย่างไรก็ตาม ชุดค่าผสมบางชุดจะมีค่าว่างในคอลัมน์ยอดขายรวม เนื่องจากชุดค่าผสมเหล่านี้ไม่มีแถวที่ตรงกันในตารางการขาย

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ในแท็บ Server Timings โค้ดจะเลือกยี่ห้อและสีก่อน จากนั้นจึงสรุปผลคูณของปริมาณและราคาขายสุทธิ

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

ในกรณีนี้ กลไก DAX จะเรียกชุดค่าผสมของแบรนด์และสีทั้งหมดที่มีอยู่ในตารางผลิตภัณฑ์ก่อน พร้อมกับชุดที่มีแถวที่สอดคล้องกันในตารางยอดขาย จากนั้นจะดึงคอลัมน์ยี่ห้อและสีแยกกัน

ในแผนการสืบค้นข้อมูลจริง คุณจะเห็นแคชข้อมูลสองแคช อันหนึ่งสำหรับยี่ห้อและอีกอันสำหรับสี เมื่อคุณคูณระเบียนทั้งหมด คุณจะได้ 176 แถว

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

จากนั้น จะทำการค้นหาใน 176 แถวเหล่านั้นเพื่อดูว่ามีค่าที่สอดคล้องกันในตารางยอดขายหรือไม่ คุณจะเห็นว่ามีเพียง 111 แถวเท่านั้นที่มีค่า อีก 65 แถวจะคืนค่าว่าง

นอกจากนี้ หากคุณเพิ่มคอลัมน์เพิ่มเติมในอาร์กิวเมนต์ CROSSJOIN ผลลัพธ์จะส่งคืนแถวเพิ่มเติมด้วย

ฟังก์ชัน CROSSJOIN DAX: การกำหนดเวลาเซิร์ฟเวอร์ & แผนการสืบค้น

บทสรุป

ฟังก์ชัน DAX CROSSJOIN สร้างตารางใหม่โดยการรวมแถวจากตารางหนึ่งกับแถวจากอีกตารางหนึ่ง ฟังก์ชันนี้คล้ายกับส่วนคำสั่ง CROSS JOIN ใน SQL และสามารถใช้เพื่อสร้างคิวรีที่ซับซ้อนมากขึ้นในโมเดลข้อมูลของคุณ

สามารถสร้างรายการค่าผสมที่เป็นไปได้ทั้งหมดจากสองตารางขึ้นไป นอกจากนี้ยังสามารถใช้เพื่อสร้างตารางใหม่ที่มีแถวจำนวนมากได้อย่างรวดเร็ว ซึ่งจะเป็นประโยชน์สำหรับการวิเคราะห์ข้อมูล การทดสอบ หรือการเปรียบเทียบประสิทธิภาพ

โดยรวมแล้ว ฟังก์ชัน CROSSJOIN เป็นเครื่องมือที่มีประโยชน์ในสถานการณ์ที่คุณจำเป็นต้องรวมข้อมูลจากหลายตารางหรือสร้างรายการของชุดค่าผสมที่เป็นไปได้ทั้งหมด

สิ่งที่ดีที่สุด


ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง

วิธีบันทึกและโหลดไฟล์ RDS ใน R

วิธีบันทึกและโหลดไฟล์ RDS ใน R

คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

เยี่ยมชม N วันทำการแรก – โซลูชันภาษาการเข้ารหัส DAX

ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

แสดงข้อมูลเชิงลึกโดยใช้เทคนิคการแสดงภาพแบบไดนามิกแบบหลายเธรดใน LuckyTemplates

บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ

บทนำในการกรองบริบทใน LuckyTemplates

บทนำในการกรองบริบทใน LuckyTemplates

ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

เคล็ดลับที่ดีที่สุดในการใช้แอปใน LuckyTemplates Online Service

ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร

วิเคราะห์การเปลี่ยนแปลงอัตรากำไรล่วงเวลา – การวิเคราะห์ด้วย LuckyTemplates และ DAX

วิเคราะห์การเปลี่ยนแปลงอัตรากำไรล่วงเวลา – การวิเคราะห์ด้วย LuckyTemplates และ DAX

เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates

แนวคิด Materialization สำหรับแคชข้อมูลใน DAX Studio

แนวคิด Materialization สำหรับแคชข้อมูลใน DAX Studio

บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์

การรายงานทางธุรกิจโดยใช้ LuckyTemplates

การรายงานทางธุรกิจโดยใช้ LuckyTemplates

หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้

เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้