ฉันเข้าใจประเด็นของ GROUP BY x
แต่มัน
GROUP BY x, y
ทำงานอย่างไรและมันหมายความว่าอย่างไร
ฉันเข้าใจประเด็นของ GROUP BY x
แต่มัน
GROUP BY x, y
ทำงานอย่างไรและมันหมายความว่าอย่างไร
คำตอบ:
Group By X
หมายถึงใส่ค่าทั้งหมดที่มีค่าเท่ากันสำหรับ X ไว้ในกลุ่มเดียว
Group By X, Y
หมายถึงใส่ค่าทั้งหมดที่มีค่าเท่ากันสำหรับทั้ง X และ Y ไว้ในกลุ่มเดียว
เพื่อแสดงให้เห็นถึงการใช้ตัวอย่างสมมติว่าเรามีตารางต่อไปนี้จะทำอย่างไรกับผู้ที่เข้าร่วมสิ่งที่อยู่ในมหาวิทยาลัย:
Table: Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
เมื่อคุณใช้ a group by
ในคอลัมน์หัวเรื่องเท่านั้น พูด:
select Subject, Count(*)
from Subject_Selection
group by Subject
คุณจะได้รับสิ่งที่ชอบ:
Subject Count
------------------------------
ITB001 5
MKB114 2
... เนื่องจากมี 5 รายการสำหรับ ITB001 และ 2 สำหรับ MKB114
ถ้าเรามีgroup by
สองคอลัมน์:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
เราจะได้สิ่งนี้:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
เนื่องจากเมื่อเราจัดกลุ่มตามสองคอลัมน์จะมีคำว่า"จัดกลุ่มเพื่อให้ทุกกลุ่มที่มีหัวเรื่องและภาคการศึกษาเดียวกันอยู่ในกลุ่มเดียวกันจากนั้นคำนวณฟังก์ชันการรวมทั้งหมด (จำนวน, ผลรวม, ค่าเฉลี่ย ฯลฯ ) ) สำหรับแต่ละกลุ่มเหล่านั้น" ในตัวอย่างนี้สิ่งนี้แสดงให้เห็นโดยข้อเท็จจริงที่ว่าเมื่อเรานับพวกเขามีสามคนที่ทำ ITB001 ในภาคเรียนที่ 1 และสองคนทำในภาคเรียนที่ 2 ทั้งสองคนที่ทำ MKB114 อยู่ในภาคเรียนที่ 1 ดังนั้นจึงไม่มี แถวสำหรับภาคเรียนที่ 2 (ไม่มีข้อมูลเข้าในกลุ่ม "MKB114, ภาคเรียนที่ 2")
หวังว่ามันสมเหตุสมผล
GROUP BY A,B
เช่นเดียวกันGROUP BY B,A
หรือไม่
GROUP BY a, b
และGROUP BY a AND b
เนื่องจากรายการที่สองจะแสดงรายการที่จัดกลุ่มเท่านั้นที่มีเนื้อหาเดียวกันและไม่มี "กลุ่ม" ในกรณีนี้การส่งออกจะเหมือนกันเป็นครั้งแรก
ส่วนGROUP BY
คำสั่งจะใช้ร่วมกับฟังก์ชั่นรวมเพื่อจัดกลุ่มชุดผลลัพธ์ตามคอลัมน์อย่างน้อยหนึ่งคอลัมน์ เช่น:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
จำคำสั่งนี้:
1) SELECT (ใช้เพื่อเลือกข้อมูลจากฐานข้อมูล)
2) FROM (ส่วนคำสั่งถูกใช้เพื่อแสดงรายการตาราง)
3) WHERE (ส่วนคำสั่งที่ใช้ในการกรองบันทึก)
4) GROUP BY (ข้อสามารถใช้ในคำสั่ง SELECT เพื่อรวบรวมข้อมูลในหลาย ๆ ระเบียนและจัดกลุ่มผลลัพธ์ตามคอลัมน์หนึ่งคอลัมน์หรือมากกว่า)
5) HAVING (ส่วนคำสั่งถูกใช้ร่วมกับ GROUP BY clause เพื่อ จำกัด กลุ่มของแถวที่ส่งคืนให้เฉพาะกลุ่มที่เงื่อนไขเป็น TRUE)
6) ORDER BY (คีย์เวิร์ดใช้เพื่อเรียงลำดับชุดผลลัพธ์)
คุณสามารถใช้สิ่งเหล่านี้ได้หากคุณใช้ฟังก์ชั่นรวมและนี่คือลำดับที่ต้องตั้งค่ามิฉะนั้นคุณจะได้รับข้อผิดพลาด
ฟังก์ชั่นรวมคือ:
MIN ส่งคืนค่าที่เล็กที่สุดในคอลัมน์ที่กำหนด
SUM ส่งคืนผลรวมของค่าตัวเลขในคอลัมน์ที่กำหนด
AVG ส่งคืนค่าเฉลี่ยของคอลัมน์ที่กำหนด
COUNT ส่งคืนจำนวนค่าทั้งหมดในคอลัมน์ที่กำหนด
COUNT (*) ส่งคืนจำนวนแถวในตาราง