นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

ในบล็อกนี้ เราจะพูดถึงนิพจน์ตารางทั่วไปบางรายการ หรือที่เรียกว่าCTE หากคุณพบปัญหาที่ซับซ้อน การใช้นิพจน์ตาราง SQL เหล่านี้ สามารถช่วยคุณได้

ด้วยCTEคุณสามารถแบ่งงานใดๆ ออกเป็นแบบสอบถามขนาดเล็กและจัดการได้เพื่อแก้ปัญหาที่ซับซ้อน

ตอนนี้เรามาสำรวจว่าCTEช่วยให้งานของคุณมีประสิทธิภาพมากขึ้นในการแก้ปัญหาโค้ดได้ อย่างไร

สารบัญ

ไวยากรณ์สำหรับการสร้างนิพจน์ตาราง SQL ทั่วไป 

ขั้นแรก คุณต้องพิมพ์ “ WITH ” ตามด้วยชื่อนิพจน์ CTE ของคุณ ตามด้วย “ AS

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

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

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

จากนั้น เพิ่มคำสั่ง SELECTโดยใช้ตารางเสมือนที่คุณสร้างโดยใช้ชื่อ Expressionที่คุณตั้งไว้

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

สำหรับตัวอย่าง เราจะใช้ " USACusts "สำหรับชื่อนิพจน์

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

และสำหรับแบบสอบถาม เราจะใช้รหัสนี้ 

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

แบบสอบถามนี้จะสร้างตารางเสมือน โดยจะแสดงจำนวนเงินทั้งหมดหรือจำนวนรวมที่จัดกลุ่มตามรหัสลูกค้าซึ่งประเทศที่พวกเขาอยู่คือ “ สหรัฐอเมริกา ” ข้อมูลจะถูกแยกออกจากตารางSales.Customers

จะเห็นสองคอลัมน์ ซึ่งก็คือcustidและAgg_Amount โปรดทราบว่า ตาราง USACustsไม่ใช่ตารางจริง แต่เป็นตารางเสมือนเท่านั้น ซึ่งหมายความว่าจะไม่ปรากฏในฐานข้อมูลของเรา

หลังจากเคียวรี เราสามารถเพิ่มคำสั่ง SELECTได้

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

คำสั่งนี้จะเลือกAgg_Amount ทั้งหมด ที่มากกว่า1,000จากตารางUSACusts

นิพจน์ตาราง SQL ทั่วไปหลายรายการ 

CTEหลายรายการสามารถช่วยคุณแก้ไขข้อผิดพลาดที่ซับซ้อนในโค้ดของคุณได้โดยการแบ่งมันออกเป็นชิ้นเล็กๆ นอกจากนี้ คุณสามารถกำหนด CTEได้มากเท่าที่คุณต้องการ ด้านล่างนี้เป็นตัวอย่างของCTE หลาย รายการ

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

สำหรับตัวอย่างนี้ เรามีCTE ตัว แรก คือC1 จากตรงนั้น เราเลือกYEAR(วันที่สั่งซื้อ)และสร้าง 2 คอลัมน์ซึ่งเป็นorderyearและcustidจากตาราง Sales.Orders

สำหรับCTE ที่สอง ชื่อC2เราเลือกorderyearและรวบรวมจำนวนของcustidโดยใช้คำสั่งCOUNT จากนั้นเราก็ตั้งชื่อมันว่าnumcustsจากC1 มีการเพิ่มเงื่อนไข WHERE ในC2 เพื่อเลือกเฉพาะ ปีการ สั่งซื้อที่มากกว่า2015 จากนั้นเราก็จัดกลุ่มตามลำดับปี

หลังจากนั้น เราเลือกorderyearและnumcustsจากC2 จากนั้นเราได้เพิ่ม เงื่อนไข WHEREเพื่อเลือกเฉพาะจำนวนลูกค้าที่มากกว่า500

โดยสรุป รหัสนี้ใช้เพื่อเลือกลูกค้าที่ปีการสั่งซื้อมากกว่า2015และเลือกเฉพาะจำนวนลูกค้าที่มากกว่า500 ราย ตามเงื่อนไขปีการสั่งซื้อ

การใช้ CTE หลายรายการสำหรับการแก้โค้ดที่ซับซ้อน

ต่อไป ฉันจะแสดงตัวอย่างเพิ่มเติมเพื่อเน้นการใช้CTEในการแก้ไขปัญหาชุดข้อมูลขนาดใหญ่ นี่เป็นอีกตัวอย่างหนึ่งของCTE หลาย รายการ

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

โปรดทราบว่าคุณสามารถตั้งชื่อCTE ได้ตามต้องการ แต่สำหรับบล็อกนี้ เราใช้C1 , C2 , C3และอื่นๆ เพื่อให้ระบุและเข้าใจวิธีที่เราใช้ CTE ในตัวอย่างของเราได้อย่างง่ายดาย

ย้อนกลับไปที่ตัวอย่าง เราสร้างC1เพื่อเลือกเฉพาะการขายที่มีปริมาณการสั่งซื้อมากกว่า5จากตารางSales.SalesOrderDetails

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

จากนั้นในC2เรา ใช้ข้อมูลที่จัดเก็บไว้ในC1 เพื่อรวมผลิตภัณฑ์ตามProduct.IDและจัดกลุ่มตามชื่อผลิตภัณฑ์(p.Name)และสีผลิตภัณฑ์(p.Color)

เนื่องจากเราประกาศเงื่อนไขในC1เราจะจัดกลุ่มเฉพาะชื่อผลิตภัณฑ์และสีผลิตภัณฑ์ในC2สำหรับคำสั่งซื้อที่ปริมาณการสั่งซื้อ( OrderQty)มากกว่า5

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

หลังจากนั้น เราจะใช้คำสั่งเพื่อเลือกข้อมูลทั้งหมดจาก C2 ที่มีปริมาณ การสั่งซื้อที่มากกว่า1,000

สำหรับวัตถุประสงค์ในการแก้ปัญหา คุณสามารถเลือก CTEแต่ละรายการที่คุณสร้างขึ้นเพื่อตรวจสอบว่าแสดงข้อมูลที่ถูกต้องหรือไม่ อ้างถึงตัวอย่างด้านล่าง

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

สำหรับC1จะแสดงข้อมูลทั้งหมดจาก ตาราง Sales.SalesOrderDetail ที่มีปริมาณการ สั่งซื้อมากกว่า5

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

จากนั้นC2จะแสดงผลลัพธ์ของปริมาณการสั่งซื้อที่จัดกลุ่มตามชื่อผลิตภัณฑ์และสีจากC1 ในC2เราสามารถเห็น คอลัมน์ orderqtyแต่จริงๆ แล้วเราไม่มีในC2เพราะมันเป็นเพียงคอลัมน์จากการคำนวณที่เราสร้างขึ้นจากC1 จากที่นี่ เราสามารถเริ่มใช้เงื่อนไขใดก็ได้ใน คอลัมน์ orderqtyและดำเนินการแก้ไขปัญหา

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

การใช้ CTE กับคำชี้แจงกรณี

เรามาอีกตัวอย่างหนึ่งที่มีบริบทเดียวกันเพื่อแสดงให้เห็นว่าเราสามารถใช้CTE หลายรายการ ในการแก้ปัญหาโค้ดที่ซับซ้อน  ได้อย่างไร

ในกรณีนี้ เราจะใช้ คำ สั่งCASEที่จะสร้างคอลัมน์Product Category พร้อมผลลัพธ์ที่อิงจากจำนวนรวมของorderqtyจากC2

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

ดังที่ได้กล่าวไว้ก่อนหน้านี้ เราไม่มีorderqty ใน CTEแรกและหมวดหมู่ผลิตภัณฑ์แต่เราใช้ตารางกลางในการคำนวณและดำเนินการคำนวณต่างๆ

ในตัวอย่างถัดไป เราจะสร้างยอดรวมตามประเภทผลิตภัณฑ์ ที่เราสร้างไว้ในตัวอย่างที่แล้ว แต่ในการทำเช่นนี้ เราจะใส่ คำ สั่งCASEสำหรับProduct CategoryในCTE ที่สาม ซึ่งก็คือC3

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

ก่อนดำเนินการต่อ ให้ตรวจสอบผลลัพธ์ของC3โดยเพิ่ม “ SELECT * FROM C3 ” ด้านล่างC3

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

ในC3เราจะเห็นคอลัมน์ProductName , Color , orderqtyและProduct Category จากที่นี่ เราสามารถเริ่มการรวมตาม หมวด หมู่ผลิตภัณฑ์ ลองทำโดยใช้คำสั่งต่อไปนี้ด้านล่างC3

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

ตัวอย่างด้านล่างคือผลลัพธ์หลังจากสร้างยอดรวมโดยใช้คำสั่งด้านบน

นิพจน์ตาราง SQL ทั่วไปสำหรับผู้ใช้ LuckyTemplates

เริ่มแรก เราไม่มี คอลัมน์ Product Categoryและorderqtyแต่เราสามารถสร้างผลลัพธ์ตัวอย่างตามคอลัมน์เหล่านี้ได้โดยใช้CTE หลาย รายการ

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

SQL Temp Tables and Views For LuckyTemplates User
Filter In SQL using IN, NOT IN, LIKE, and NOT LIKE
SQL Data Extraction using OFFSET and FETCH

บทสรุป

ในบทแนะนำสอนการใช้งานนี้ คุณได้เรียนรู้ไวยากรณ์ที่เหมาะสมในการสร้างนิพจน์ตาราง SQL ทั่วไปและวิธีใช้CTE หลายรายการ ในการแก้ปัญหาโค้ดที่ซับซ้อนโดยแยกข้อมูลส่วนเล็กๆ และจัดเก็บไว้ในCTE ที่กำหนด

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

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้และเนื้อหาที่เกี่ยวข้องอื่นๆ คุณสามารถดูรายการลิงก์ที่เกี่ยวข้องด้านล่างได้อย่างแน่นอน

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

ฮาฟิซ


ตนเองคืออะไรใน 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 คืออะไร ทั้งหมดที่คุณต้องการรู้