ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ในบล็อกนี้ เราจะพูดถึงนิพจน์ตารางทั่วไปบางรายการ หรือที่เรียกว่าCTE หากคุณพบปัญหาที่ซับซ้อน การใช้นิพจน์ตาราง SQL เหล่านี้ สามารถช่วยคุณได้
ด้วยCTEคุณสามารถแบ่งงานใดๆ ออกเป็นแบบสอบถามขนาดเล็กและจัดการได้เพื่อแก้ปัญหาที่ซับซ้อน
ตอนนี้เรามาสำรวจว่าCTEช่วยให้งานของคุณมีประสิทธิภาพมากขึ้นในการแก้ปัญหาโค้ดได้ อย่างไร
สารบัญ
ไวยากรณ์สำหรับการสร้างนิพจน์ตาราง SQL ทั่วไป
ขั้นแรก คุณต้องพิมพ์ “ WITH ” ตามด้วยชื่อนิพจน์ CTE ของคุณ ตามด้วย “ AS ”
หลังจากนั้น คุณสามารถระบุข้อความค้นหาระหว่างวงเล็บ สิ่งนี้จะถูกเก็บไว้ในชื่อนิพจน์ที่ให้ไว้ซึ่งจะทำงานเป็นตารางเสมือน
จากนั้น เพิ่มคำสั่ง SELECTโดยใช้ตารางเสมือนที่คุณสร้างโดยใช้ชื่อ Expressionที่คุณตั้งไว้
สำหรับตัวอย่าง เราจะใช้ " USACusts "สำหรับชื่อนิพจน์
และสำหรับแบบสอบถาม เราจะใช้รหัสนี้
แบบสอบถามนี้จะสร้างตารางเสมือน โดยจะแสดงจำนวนเงินทั้งหมดหรือจำนวนรวมที่จัดกลุ่มตามรหัสลูกค้าซึ่งประเทศที่พวกเขาอยู่คือ “ สหรัฐอเมริกา ” ข้อมูลจะถูกแยกออกจากตารางSales.Customers
จะเห็นสองคอลัมน์ ซึ่งก็คือcustidและAgg_Amount โปรดทราบว่า ตาราง USACustsไม่ใช่ตารางจริง แต่เป็นตารางเสมือนเท่านั้น ซึ่งหมายความว่าจะไม่ปรากฏในฐานข้อมูลของเรา
หลังจากเคียวรี เราสามารถเพิ่มคำสั่ง SELECTได้
คำสั่งนี้จะเลือกAgg_Amount ทั้งหมด ที่มากกว่า1,000จากตารางUSACusts
นิพจน์ตาราง SQL ทั่วไปหลายรายการ
CTEหลายรายการสามารถช่วยคุณแก้ไขข้อผิดพลาดที่ซับซ้อนในโค้ดของคุณได้โดยการแบ่งมันออกเป็นชิ้นเล็กๆ นอกจากนี้ คุณสามารถกำหนด CTEได้มากเท่าที่คุณต้องการ ด้านล่างนี้เป็นตัวอย่างของCTE หลาย รายการ
สำหรับตัวอย่างนี้ เรามี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 หลาย รายการ
โปรดทราบว่าคุณสามารถตั้งชื่อCTE ได้ตามต้องการ แต่สำหรับบล็อกนี้ เราใช้C1 , C2 , C3และอื่นๆ เพื่อให้ระบุและเข้าใจวิธีที่เราใช้ CTE ในตัวอย่างของเราได้อย่างง่ายดาย
ย้อนกลับไปที่ตัวอย่าง เราสร้างC1เพื่อเลือกเฉพาะการขายที่มีปริมาณการสั่งซื้อมากกว่า5จากตารางSales.SalesOrderDetails
จากนั้นในC2เรา ใช้ข้อมูลที่จัดเก็บไว้ในC1 เพื่อรวมผลิตภัณฑ์ตามProduct.IDและจัดกลุ่มตามชื่อผลิตภัณฑ์(p.Name)และสีผลิตภัณฑ์(p.Color)
เนื่องจากเราประกาศเงื่อนไขในC1เราจะจัดกลุ่มเฉพาะชื่อผลิตภัณฑ์และสีผลิตภัณฑ์ในC2สำหรับคำสั่งซื้อที่ปริมาณการสั่งซื้อ( OrderQty)มากกว่า5
หลังจากนั้น เราจะใช้คำสั่งเพื่อเลือกข้อมูลทั้งหมดจาก C2 ที่มีปริมาณ การสั่งซื้อที่มากกว่า1,000
สำหรับวัตถุประสงค์ในการแก้ปัญหา คุณสามารถเลือก CTEแต่ละรายการที่คุณสร้างขึ้นเพื่อตรวจสอบว่าแสดงข้อมูลที่ถูกต้องหรือไม่ อ้างถึงตัวอย่างด้านล่าง
สำหรับC1จะแสดงข้อมูลทั้งหมดจาก ตาราง Sales.SalesOrderDetail ที่มีปริมาณการ สั่งซื้อมากกว่า5
จากนั้นC2จะแสดงผลลัพธ์ของปริมาณการสั่งซื้อที่จัดกลุ่มตามชื่อผลิตภัณฑ์และสีจากC1 ในC2เราสามารถเห็น คอลัมน์ orderqtyแต่จริงๆ แล้วเราไม่มีในC2เพราะมันเป็นเพียงคอลัมน์จากการคำนวณที่เราสร้างขึ้นจากC1 จากที่นี่ เราสามารถเริ่มใช้เงื่อนไขใดก็ได้ใน คอลัมน์ orderqtyและดำเนินการแก้ไขปัญหา
ตอนนี้คุณสามารถดูได้ว่าCTE หลายรายการ สามารถช่วยเราแก้ไขข้อผิดพลาดในโค้ดที่ซับซ้อนได้อย่างไรโดยจัดเก็บไว้ในCTEและเริ่มแก้ไขปัญหาโดยไม่ทำให้โค้ดจริงเสียหาย
การใช้ CTE กับคำชี้แจงกรณี
เรามาอีกตัวอย่างหนึ่งที่มีบริบทเดียวกันเพื่อแสดงให้เห็นว่าเราสามารถใช้CTE หลายรายการ ในการแก้ปัญหาโค้ดที่ซับซ้อน ได้อย่างไร
ในกรณีนี้ เราจะใช้ คำ สั่งCASEที่จะสร้างคอลัมน์Product Category พร้อมผลลัพธ์ที่อิงจากจำนวนรวมของorderqtyจากC2
ดังที่ได้กล่าวไว้ก่อนหน้านี้ เราไม่มีorderqty ใน CTEแรกและหมวดหมู่ผลิตภัณฑ์แต่เราใช้ตารางกลางในการคำนวณและดำเนินการคำนวณต่างๆ
ในตัวอย่างถัดไป เราจะสร้างยอดรวมตามประเภทผลิตภัณฑ์ ที่เราสร้างไว้ในตัวอย่างที่แล้ว แต่ในการทำเช่นนี้ เราจะใส่ คำ สั่งCASEสำหรับProduct CategoryในCTE ที่สาม ซึ่งก็คือC3
ก่อนดำเนินการต่อ ให้ตรวจสอบผลลัพธ์ของC3โดยเพิ่ม “ SELECT * FROM C3 ” ด้านล่างC3
ในC3เราจะเห็นคอลัมน์ProductName , Color , orderqtyและProduct Category จากที่นี่ เราสามารถเริ่มการรวมตาม หมวด หมู่ผลิตภัณฑ์ ลองทำโดยใช้คำสั่งต่อไปนี้ด้านล่างC3
ตัวอย่างด้านล่างคือผลลัพธ์หลังจากสร้างยอดรวมโดยใช้คำสั่งด้านบน
เริ่มแรก เราไม่มี คอลัมน์ 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: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้