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

ผู้เขียน: Laura McKinney
วันที่สร้าง: 1 เมษายน 2021
วันที่อัปเดต: 15 พฤษภาคม 2024
Anonim
SQL Tutorial for Beginners: Database, JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIKE, IN, BETWEEN
วิดีโอ: SQL Tutorial for Beginners: Database, JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIKE, IN, BETWEEN

เนื้อหา


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

  1. แผนภูมิเปรียบเทียบ
  2. คำนิยาม
  3. ความแตกต่างที่สำคัญ
  4. ข้อสรุป

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

พื้นฐานสำหรับการเปรียบเทียบจัดกลุ่มตามสั่งโดย
ขั้นพื้นฐานจัดกลุ่มตามจะใช้ในการจัดตั้งกลุ่มของชุดของ 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 ตามลำดับจากน้อยไปหามากจากนั้นจัดเรียงเงินเดือนในแผนกเดียวกันตามลำดับจากมากไปน้อย

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

สรุป:

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