แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง Group By และ Order By ใน SQL

SQL อนุญาตให้จัดระเบียบข้อมูลที่ได้จากแบบสอบถาม เรามีสองส่วนสำหรับการจัดระเบียบข้อมูลที่ได้จากแบบสอบถามที่จัดกลุ่มตามและสั่งซื้อตามข้อ จุดที่แยกความแตกต่าง Group By และ Order By clause คือ Group By clause ถูกใช้เมื่อเราต้องการใช้ฟังก์ชันการรวมกับ tuples มากกว่าหนึ่งชุดและ Order By clause ถูกใช้เมื่อเราต้องการเรียงลำดับข้อมูลที่ได้จากแบบสอบถาม ให้เราคุยความแตกต่างบางอย่างระหว่าง Group By clause และ Order By clause ด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง

แผนภูมิเปรียบเทียบ

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

คำจำกัดความของกลุ่มตามข้อ

ฟังก์ชันการรวมเช่น avg, min, max, sum, count ถูกนำไปใช้กับ tuples ชุดเดียว ในกรณีที่ถ้าคุณต้องการใช้ฟังก์ชั่นรวมกับกลุ่มของชุดของ tuples แล้วเรามีกลุ่มตามข้อสำหรับที่ จัดกลุ่มตามข้อจัดกลุ่มสิ่งอันดับที่มีค่าคุณลักษณะเดียวกัน

มีสิ่งหนึ่งที่ต้อง จดจำ เกี่ยวกับข้อ Group By ให้ตรวจสอบให้แน่ใจว่า แอตทริบิวต์ ภายใต้ Group By clause ต้องปรากฏใน SELECT clause แต่ ไม่ อยู่ภายใต้ ฟังก์ชันการรวม หากกลุ่มตามข้อมีแอตทริบิวต์ที่ไม่ได้อยู่ภายใต้ข้อเลือกหรือถ้ามันอยู่ภายใต้ข้อเลือก แต่ภายใต้ฟังก์ชั่นรวมแล้วแบบสอบถามจะกลายเป็นผิดพลาด ดังนั้นเราสามารถพูดได้ว่า Group By clause จะถูกใช้ร่วมกับ SELECT clause อยู่เสมอ

ให้เรายกตัวอย่างเพื่อทำความเข้าใจกลุ่มตามข้อ

SELECT แผนก _ID, เฉลี่ย (เงินเดือน) เป็น avg_salary จากกลุ่มครูโดย Department_ID

คุณจะเห็นได้ว่าเริ่มแรกมีการสร้างผลลัพธ์ระดับกลางที่จัดกลุ่มแผนกต่างๆ

ถัดไปฟังก์ชั่นรวม avg ถูกนำไปใช้กับแต่ละกลุ่มของแผนกและผลลัพธ์ที่แสดงด้านล่าง

คำจำกัดความของคำสั่งซื้อตามข้อ

Order By clause ใช้เพื่อแสดงข้อมูลที่ได้จากแบบสอบถามในลำดับที่เรียง เช่นเดียวกับ Group By clause, Order By clause ยังถูกใช้ร่วมกับ SELECT clause หากคุณไม่ได้กล่าวถึงลำดับการเรียงลำดับ Order ตามข้อจะเรียงลำดับข้อมูลตามลำดับจากน้อยไปหามาก คุณสามารถระบุลำดับจากน้อยไปหามากเป็น asc และเรียงจากมากไปหาน้อยเป็น desc

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

เลือก Department_ID, เงินเดือนจากคำสั่งซื้อของครูโดย Department_Id asc, เงินเดือนเรียง

คุณจะเห็นว่าก่อนอื่นมันจะจัดเรียงแผนก _ID ตามลำดับจากน้อยไปหามากและจากนั้นจะจัดเรียงเงินเดือนในแผนกเดียวกันตามลำดับจากมากไปน้อย

ความแตกต่างที่สำคัญระหว่างกลุ่มตามและสั่งซื้อโดย

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

สรุป:

หากคุณต้องการสร้างกลุ่มของชุดของ tuples คุณจะต้องใช้ Group By clause ในกรณีที่คุณต้องการจัดเรียงข้อมูลของคอลัมน์เดียวหรือมากกว่าหนึ่งคอลัมน์ในชุดของสิ่งอันดับในลำดับจากน้อยไปมากหรือมากไปหาน้อยจึงต้องใช้คำสั่งเรียงตาม

Top