มีประโยคในฟังก์ชันรวมของ SQL

มีประโยคในฟังก์ชันรวมของ SQL

ในบทช่วยสอนนี้ เราจะพูดถึงสองสามวิธีที่เราสามารถใช้หรือดำเนินการ HAVING Clause ในฟังก์ชันการรวมของSQL การใช้ส่วนนี้ในฟังก์ชันรวมของ SQL สามารถช่วยในการสรุปข้อมูลได้อย่างมาก

HAVING Clause เกือบจะคล้ายกับ คำสั่ง WHEREและยังสามารถดำเนินการควบคู่ไปด้วย

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

สารบัญ

จัดกลุ่มตามคำสั่งและตำแหน่งใน SQL

สำหรับตัวอย่างแรก เราจะพูดถึงวิธีดำเนินการคำสั่งWHEREและGROUP BY โดยใช้ตารางตัวอย่างด้านล่าง โปรดทราบว่าเราสามารถใช้ ส่วนคำสั่ง WHEREกับคอลัมน์ที่มีอยู่เท่านั้น และไม่สามารถใช้กับฟังก์ชันรวมเพียงอย่างเดียว

มีประโยคในฟังก์ชันรวมของ SQL

สมมติว่าเราต้องการรับยอดขายรวมของผลิตภัณฑ์ตามคอลัมน์ SaleAmount ซึ่งมีค่ามากกว่า2 เพื่อให้ได้ผลลัพธ์ คำสั่งของเราควรเป็นดังนี้:

มีประโยคในฟังก์ชันรวมของ SQL

อันดับแรก เราเลือกProductNameและรวมSaleAmountเพื่อรับTotalSales 

มีประโยคในฟังก์ชันรวมของ SQL

จากนั้น เราใช้ คำสั่ง WHEREที่นี่ เนื่องจากเราพยายามรับเฉพาะผลิตภัณฑ์ที่SaleAmountมากกว่า2คำสั่ง'GROUP BY ProductName'ระบุว่าจะจัดกลุ่มแถวภายใต้คอลัมน์ProductNameเป็นหนึ่งเดียว

การดำเนินการชุดคำสั่งของเรา เราจะเห็นว่าจากข้อมูลทั้งหมดภายใต้คอลัมน์ProductNameและSaleAmount มี เพียงหลอดไฟและพัดลมเท่านั้นที่แสดง นั่นเป็นเพราะว่าพวกเขาเป็นคนเดียวที่มีSaleAmountมากกว่า2

มีประโยคในฟังก์ชันรวมของ SQL

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

จัดกลุ่มตามและมีส่วนคำสั่งใน SQL

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

ขั้นแรกให้แสดงผลิตภัณฑ์ที่มียอดขายรวมโดยใช้คำสั่งด้านล่าง อย่างที่คุณเห็น คำสั่งแรกของเรายังคงเหมือนกับคำสั่งแรกที่ใช้คำสั่งWHERE

มีประโยคในฟังก์ชันรวมของ SQL

หากเราต้องดำเนินการสองคำสั่งแรก เราจะได้ผลลัพธ์ดังต่อไปนี้:

มีประโยคในฟังก์ชันรวมของ SQL

ตอนนี้ สมมติว่าเราต้องการแสดงเฉพาะสินค้าที่มียอดขายรวมมากกว่า 5 รายการ เราไม่สามารถใช้ คำสั่ง WHERE ได้  เนื่องจากใช้ได้กับคอลัมน์ที่มีอยู่เท่านั้น ดังนั้น เราจำเป็นต้องใช้HAVING clause เนื่องจากเราจะกรองจากฟังก์ชันรวม 

มีประโยคในฟังก์ชันรวมของ SQL

สังเกตวิธีที่เราใช้HAVING clause หลังGROUP BYซึ่งแตกต่างจาก คำสั่ง WHEREที่ใช้ก่อนGROUP BY เนื่องจาก SQL จะจัดกลุ่มเร็กคอร์ดก่อนที่จะประเมินHAVING clause 

จากนั้นให้ดำเนินการคำ สั่งเหล่านั้นพร้อมกับHAVING SUM(SaleAmount)>5 หลังจากระบุว่าเราต้องการรับเฉพาะสินค้าที่ราคารวมมากกว่า5เราจะสังเกตเห็นว่าในตารางผลลัพธ์ปัจจุบัน เราจะไม่เห็นปากกาอีกต่อไป นั่นเป็นเพราะผล รวม  น้อยกว่า5

มีประโยคในฟังก์ชันรวมของ SQL

โดยสังเขป เมื่อเราต้องการกรองข้อมูลจากตารางของเราตามคอลัมน์ที่มีอยู่ เราจะใช้ส่วนคำสั่ง WHERE ในขณะ ที่  เมื่อเราต้องการกรองข้อมูลจากฟังก์ชันรวม เราจะใช้ส่วนคำสั่ง HAVING

HAVING และ WHERE Clause ใน SQL Server Management Studio (SSMS)

ตอนนี้ เราจะก้าวไปข้างหน้าโดยการพูดคุยและสาธิตวิธีดำเนินการHAVING clauseในSQL Server Management Studio (SSMS) นอกจากนี้ เราจะจัดการกับความแตกต่างระหว่างประโยค HAVINGและประโยค WHEREด้วยการยกตัวอย่าง

ด้านล่างนี้เป็นตัวอย่างข้อมูลSalesOrderHeader ของเรา ข้อมูลนี้ประกอบด้วย100 แถว ตัวอย่างเช่น เราต้องการ รับTotalSaleตามรหัสลูกค้าโดยที่TotalSaleมากกว่า10,000 โปรดทราบว่ายอดขายรวมจะขึ้นอยู่กับผลรวมของค่าในคอลัมน์TotalDue

มีประโยคในฟังก์ชันรวมของ SQL

ขั้นแรก ให้ฉันสาธิตว่าทำไมเราจึงไม่สามารถใช้ส่วนคำสั่ง WHEREเมื่อเราต้องการกรองฟังก์ชันการรวมตามตัวอย่างข้างต้น 

เราจะใช้ชุดคำสั่งตัวอย่างจากภาพด้านล่าง อย่างที่คุณเห็น ในทางเทคนิคแล้ว เรามีชุดคำสั่งเดียวกันกับชุดคำสั่งที่เราได้รับจากตัวอย่างแรกของเรา

อย่างไรก็ตาม เมื่อเราคลิกที่Executeที่มุมบนซ้าย จะทำให้เกิดข้อผิดพลาด เนื่องจากเราไม่สามารถใช้ คำสั่ง WHEREเพียงอย่างเดียวเมื่อเรากรองฟังก์ชันการรวม

มีประโยคในฟังก์ชันรวมของ SQL

ในการแก้ไขข้อผิดพลาด เราจำเป็นต้องกรองผลลัพธ์โดยใช้ ส่วนคำสั่ง HAVINGแทนส่วนคำสั่งWHERE ชุดคำสั่งใหม่ของเราควรคล้ายกับภาพด้านล่าง

มีประโยคในฟังก์ชันรวมของ SQL

ตอนนี้ เราจะเห็นว่าข้อผิดพลาดของเราได้ รับการแก้ไขแล้ว และมีผลลัพธ์ต่อCustomerIDที่มีTotalSaleมากกว่า10,000

อีกครั้งส่วนคำสั่ง WHEREจะใช้ก่อนส่วนคำสั่ง GROUP BY เสมอในขณะที่ส่วนคำสั่ง HAVINGจะใช้หลังส่วนคำสั่ง GROUP BY เสมอ

ใช้ทั้ง HAVING Clause และ WHERE Clause ใน SQL  

สำหรับตัวอย่างนี้ สมมติว่าเราต้องการใช้ คำสั่ง WHEREและHAVINGพร้อมกัน มาลองรับTotalSale  ตาม CustomerID โดยที่TotalSaleมากกว่า10,000แต่เฉพาะกับลูกค้าที่TerritoryID ของพวกเขา เท่ากับ1

เนื่องจากเราต้องการกรองผลลัพธ์กับลูกค้าที่มี 1 เป็นTerritoryIDเราจึงใช้ส่วนคำสั่ง WHERE ดังนั้นคำสั่งของเราควรเหมือนกับคำสั่งก่อนหน้าของเรา อีกครั้ง เราได้เพิ่มส่วนคำสั่ง WHEREก่อนส่วนคำสั่ง GROUP BY

มีประโยคในฟังก์ชันรวมของ SQL

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

บทสรุป

โดยสรุป เราสามารถใช้ ส่วนคำสั่ง WHEREกับคอลัมน์ที่มีอยู่ เท่านั้น หากเราต้องการกรองด้วยฟังก์ชันรวม เราจำเป็นต้องใช้HAVING clause แทน

การใช้ ส่วนคำสั่ง HAVINGในฟังก์ชันการรวมของ SQL และวิธีฝึกฝนเพื่อดำเนินการ ส่วนคำสั่ง HAVINGและ ส่วนคำสั่ง WHEREร่วมกัน จะช่วยให้ผู้ใช้สะดวกเมื่อทำงานกับข้อมูลหรือบันทึกจำนวนมาก 

ฉันหวังว่าฉันได้ให้ข้อมูลและความเข้าใจที่เพียงพอแก่คุณเกี่ยวกับวิธีใช้HAVING clause ในฟังก์ชันการรวม 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 คืออะไร ทั้งหมดที่คุณต้องการรู้