ความแตกต่างระหว่าง Group By และ Order By ใน SQL
เนื้อหา
SQL อนุญาตให้จัดระเบียบข้อมูลที่ได้จากแบบสอบถาม เรามีสองข้อสำหรับการจัดระเบียบข้อมูลที่ได้จากแบบสอบถามที่จัดกลุ่มตามและสั่งซื้อตามข้อ จุดที่แตกต่างของ Group By และ Order By clause ก็คือ จัดกลุ่มตาม ประโยคที่ใช้เมื่อเราต้องการที่จะใช้ฟังก์ชั่นรวมกับมากกว่าหนึ่งชุดของ tuples และ สั่งโดย ส่วนคำสั่งจะใช้เมื่อเราต้องการเรียงลำดับข้อมูลที่ได้จากแบบสอบถาม ให้เราคุยความแตกต่างบางอย่างระหว่าง Group By clause และ Order By clause ด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง
- แผนภูมิเปรียบเทียบ
- คำนิยาม
- ความแตกต่างที่สำคัญ
- ข้อสรุป
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | จัดกลุ่มตาม | สั่งโดย |
---|---|---|
ขั้นพื้นฐาน | จัดกลุ่มตามจะใช้ในการจัดตั้งกลุ่มของชุดของ tuples | สั่งซื้อโดยจะใช้ในการจัดเรียงข้อมูลที่ได้รับเป็นผลมาจากแบบสอบถามในรูปแบบเรียงลำดับ |
คุณลักษณะ | คุณสมบัติภายใต้ฟังก์ชั่นการรวมไม่สามารถอยู่ในกลุ่มโดยข้อ | แอตทริบิวต์ภายใต้การรวมสามารถอยู่ใน Order By Clause |
พื้น | เสร็จสิ้นบนพื้นฐานของความคล้ายคลึงกันระหว่างค่าคุณลักษณะ | เสร็จสิ้นบนพื้นของลำดับจากน้อยไปมากและจากมากไปน้อย |
คำจำกัดความของกลุ่มตามข้อ
ฟังก์ชันการรวมเช่น avg, min, max, sum, count ถูกนำไปใช้กับ tuples ชุดเดียว ในกรณีที่ถ้าคุณต้องการใช้ฟังก์ชั่นรวมกับกลุ่มของชุดของ tuples แล้วเรามีกลุ่มตามข้อสำหรับที่ จัดกลุ่มตามข้อจัดกลุ่มสิ่งอันดับที่มีค่าคุณลักษณะเดียวกัน
มีสิ่งหนึ่งที่จะ จำ เกี่ยวกับกลุ่มโดยข้อให้แน่ใจว่า คุณลักษณะ ภายใต้ จัดกลุ่มตาม ข้อต้องปรากฏใน เลือก ข้อ แต่ ไม่ ภายใต้ ฟังก์ชั่นรวม. หากกลุ่มตามข้อมีแอตทริบิวต์ที่ไม่ได้อยู่ภายใต้ข้อเลือกหรือถ้ามันอยู่ภายใต้ข้อเลือก แต่ภายใต้ฟังก์ชั่นรวมแล้วแบบสอบถามจะกลายเป็นผิดพลาด ดังนั้นเราสามารถพูดได้ว่า Group By clause จะถูกใช้ร่วมกับ SELECT clause อยู่เสมอ
ให้เรายกตัวอย่างเพื่อทำความเข้าใจกลุ่มตามข้อ
SELECT แผนก _ID, เฉลี่ย (เงินเดือน) เป็น avg_salary จากกลุ่มครูโดย Department_ID คุณจะเห็นได้ว่าเริ่มแรกมีการสร้างผลลัพธ์ระดับกลางที่จัดกลุ่มแผนกต่างๆถัดไปฟังก์ชั่นรวม avg ถูกนำไปใช้กับแต่ละกลุ่มของแผนกและผลลัพธ์ที่แสดงด้านล่าง
คำจำกัดความของคำสั่งซื้อตามข้อ
Order By clause ใช้เพื่อแสดงข้อมูลที่ได้จากแบบสอบถามในลำดับที่เรียง เช่นเดียวกับ Group By clause, Order By clause ยังถูกใช้ร่วมกับ SELECT clause หากคุณไม่ได้กล่าวถึงการเรียงลำดับคำสั่งซื้อตามข้อจะเรียงลำดับข้อมูลตามลำดับจากน้อยไปหามาก คุณสามารถระบุลำดับจากน้อยไปหามากเป็น เรียง และจากมากไปหาน้อยเป็น รายละเอียด.
ให้เราเข้าใจการทำงานของการสั่งซื้อโดยข้อด้วยความช่วยเหลือของตัวอย่างต่อไปนี้ เรามีตารางครูและฉันจะใช้การเรียงลำดับกับสองคอลัมน์ Department_Id และเงินเดือนของตารางครู
เลือก Department_ID, เงินเดือนจากคำสั่งครูโดย Department_Id asc, เงินเดือนเรียง คุณสามารถเห็นได้ว่าอันดับแรกจัดเรียงแผนก _ID ตามลำดับจากน้อยไปหามากจากนั้นจัดเรียงเงินเดือนในแผนกเดียวกันตามลำดับจากมากไปน้อย- จัดกลุ่มตามส่วนคำสั่งกลุ่มชุดของสิ่งอันดับในความสัมพันธ์ที่อยู่ภายใต้ข้อเลือก ในทางกลับกันส่วนคำสั่งซื้อตามเรียงลำดับผลลัพธ์ของแบบสอบถามในลำดับจากน้อยไปมากหรือมากไปหาน้อย
- คุณลักษณะภายใต้ฟังก์ชั่นรวมไม่สามารถอยู่ภายใต้กลุ่มโดยข้อในขณะที่คุณลักษณะภายใต้ฟังก์ชั่นรวมสามารถมีได้ภายใต้สั่งซื้อตามข้อ
- การจัดกลุ่มของสิ่งอันดับจะทำบนพื้นฐานของความคล้ายคลึงกันระหว่างค่าคุณลักษณะของสิ่งอันดับ ในทางกลับกันการเรียงลำดับหรือการเรียงลำดับจะทำบนพื้นฐานของการเรียงลำดับจากน้อยไปมากหรือจากมากไปน้อย
สรุป:
หากคุณต้องการสร้างกลุ่มของชุดของ tuples คุณจะต้องใช้ Group By clause ในกรณีที่คุณต้องการจัดเรียงข้อมูลของคอลัมน์เดียวหรือมากกว่าหนึ่งคอลัมน์ในชุดของสิ่งอันดับในลำดับจากน้อยไปมากหรือมากไปหาน้อยจึงต้องใช้คำสั่งเรียงตาม