ความแตกต่างระหว่างการใช้คำสั่ง SQL GROUP BY (เอสคิวแอล กรุ๊ป บาย) และ SQL ORDER BY (เอสคิวแอล ออร์เดอร์ บาย)

SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
pprn
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 565
ลงทะเบียนเมื่อ: 02/07/2018 10:45 am

ความแตกต่างระหว่างการใช้คำสั่ง SQL GROUP BY (เอสคิวแอล กรุ๊ป บาย) และ SQL ORDER BY (เอสคิวแอล ออร์เดอร์ บาย)

โพสต์ที่ยังไม่ได้อ่าน โดย pprn »

1. SQL GROUP BY คือการจัดกลุ่มคำที่ซ้ำกันให้แสดงแค่คำเดียว หรือการจัดกลุ่มของคำซ้ำกันให้รวมกลุ่มกัน โดยจะมีการเรียงลำดับตามตัวอักษร

เพื่อใช้ในการวิเคราะห์ หรือทำรายงานสรุปข้อมูล

รูปแบบคำสั่ง GROUP BY

โค้ด: เลือกทั้งหมด

SELECT column_name1, column_name2
FROM table_name
GROUP BY column_name1, column_name2;
อธิบายโค้ด GROUP BY
  • - table_name คือ ชื่อตารางข้อมูล
    - column_name คือ ชื่อคอลัมน์

ตัวอย่างการใช้ GROUP BY

ตัวอย่างข้อมูลในตาราง CUSTOMERS
ข้อมูลในตาราง CUSTOMERS
ข้อมูลในตาราง CUSTOMERS
Group by.JPG (24.71 KiB) Viewed 9409 times
โค้ด การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดงคอลัมน์ NAME รวมถึง SALARY ด้วย GROUP BY
  • การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดงคอลัมน์ NAME รวมถึง SALARY รวมทั้งหมดของ NAME เดียวกัน จากการจัดกลุ่ม

โค้ด: เลือกทั้งหมด

SELECT NAME, SUM(SALARY) FROM CUSTOMERS
   GROUP BY NAME;
ผลลัพธ์การใช้ GROUP BY
  • จากผลลัพธ์จะเห็นได้ว่า การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดงคอลัมน์ NAME จะมีการจัดกลุ่มคำซ้ำให้รวมอยู่เป็นกลุ่มเดียวกันและมีการเรียงลำดับตัว
อักษรนำหน้าภาษาอังกฤษตัวที่มาก่อน ซึ่งหลังเรียงตามลำดับ รวมทั้งผลรวมของ SALARY ตามลำดับของคอลัมน์ NAME ด้วย
ผลลัพธ์การใช้ GROUP BY ตาราง CUSTOMERS
ผลลัพธ์การใช้ GROUP BY ตาราง CUSTOMERS
Group by1.JPG (17.62 KiB) Viewed 9409 times

2. SQL ORDER BY คือ การจัดกลุ่มคำที่ซ้ำกันให้แสดงคำซ้ำโดยเอาทุกคำซ้ำมาแสดงด้วย
  • เราสามารถใช้ 1 column หรือ หลาย column ในการจัดเรียงข้อมูลก็ได้ โดยมี option ให้เลือกดังนี้
    • - ASC (Default) เรียงจาก น้อยไปมาก
      - DESC เรียงจาก มากไปน้อย
รูปแบบคำสั่ง ORDER BY

โค้ด: เลือกทั้งหมด

SELECT column_name-list 
FROM table_name 
[ORDER BY column_name1, column_name2, .. column_nameN] [ASC | DESC];
อธิบายโค้ด ORDER BY
  • - column_name-list คือ ชื่อคอลัมน์ต่างๆ ในฐานข้อมูล
    - table_name คือ ชื่อตารางข้อมูล
    - column_name คือ ชื่อคอลัมน์

ตัวอย่างการใช้ ORDER BY

ตัวอย่างข้อมูลในตาราง ORDER BY
ข้อมูลในตาราง CUSTOMERS
ข้อมูลในตาราง CUSTOMERS
order by.JPG (25.83 KiB) Viewed 9409 times
โค้ด การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดงคอลัมน์ NAME รวมถึง SALARY ด้วย ORDER BY จากน้อยไปมาก

โค้ด: เลือกทั้งหมด

 SELECT * FROM CUSTOMERS
   ORDER BY NAME, SALARY;
ผลลัพธ์การใช้ ORDER BY
  • จากผลลัพธ์จะเห็นได้ว่า การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดงคอลัมน์ NAME ที่ซ้ำกันทุกตัว และมีการจัดเรียงตัวอักษรภาษาอังกฤษตัวที่มาก่อน
และเรียงลำดับ SALARY จากน้อยไปมาก
ผลลัพธ์การใช้ OREDER BY ตาราง CUSTOMERS Option ASC
ผลลัพธ์การใช้ OREDER BY ตาราง CUSTOMERS Option ASC
order by asc.JPG (20.48 KiB) Viewed 9409 times
โค้ด การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดงคอลัมน์ NAME รวมถึง SALARY ด้วย ORDER BY จากมากไปน้อย

โค้ด: เลือกทั้งหมด

SELECT * FROM CUSTOMERS
   ORDER BY NAME DESC;
ผลลัพธ์การใช้ ORDER BY option DESC
  • จากผลลัพธ์จะเห็นได้ว่า การดึงข้อมูลจากตาราง CUSTOMERS เพื่อแสดงคอลัมน์ NAME ที่ซ้ำกันทุกตัว และมีการจัดเรียงตัวอักษรภาษาอังกฤษตัวที่มาก่อน
และเรียงลำดับ SALARY จากมากไปน้อย
ผลลัพธ์การใช้ OREDER BY ตาราง CUSTOMERS Option DESC
ผลลัพธ์การใช้ OREDER BY ตาราง CUSTOMERS Option DESC
ORDER BY1.JPG (20.64 KiB) Viewed 9409 times
----------------------------------------------------------------------------------------------------------------------------------------------------------------
_____________________________________________________________________________________________
บทความนี้เเป็นบทความที่จัดทำขึ้นเพื่อเนะนำเครื่องมือช่วยสำหรับนักพัฒนา SQL ซึ่งเป็นความรู้พื้นฐานในการพัฒนา phpMyadmin ต่อไป เเละขอเเนะนำความรู้ที่เกี่ยวข้องกับโดยสามารถศึกษาได้จากบทเรียน SQL ได้ที่นี่ เพื่อเพิ่มความเข้าใจในการใช้งานเครื่องมือต่างๆ ค่ะ
_____________________________________________________________________________________________

----------------------------------------------------------------------------------------------------------------------------------------------------------------

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 39