나는 요점을 이해한다 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
group by
주제 열에 만을 사용하는 경우 말하다:
select Subject, Count(*)
from Subject_Selection
group by Subject
당신은 다음과 같은 것을 얻을 것입니다 :
Subject Count
------------------------------
ITB001 5
MKB114 2
ITB001에는 5 개의 항목이 있고 MKB114에는 2 개의 항목이 있으므로
우리가 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
이는 두 개의 열로 그룹화 할 때 “주제와 학기가 동일한 모든 사람이 같은 그룹에 있도록 그룹화 한 다음 모든 집계 함수 (Count, Sum, Average 등) 를 계산하기 때문입니다 . ) 이 그룹 “의 각 . 이 예에서는 1 학기에는 ITB001을 수행하는 사람 이 3 명이고 2 학기에는 ITB001을 수행하는 사람 이 2 명 이라는 사실을 보여줍니다 . 2 학기 행 ( “MKB114, Semester 2″그룹에 데이터가 없음)
잘만되면 그것은 의미가 있습니다.
답변
이 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) 어디에서 (절을 사용하여 레코드를 필터링)
4) GROUP BY (SELECT 문에서 여러 개의 레코드에 걸쳐 데이터를 수집하고 하나 이상의 열로 결과를 그룹화하기 위해 절을 사용할 수 있음)
5) HAVING (절이 GROUP BY 절과 함께 사용되어 리턴 된 행 그룹이 조건이 TRUE 인 그룹으로 만 제한됨)
6) ORDER BY (키워드는 결과 집합을 정렬하는 데 사용됨)
집계 함수를 사용하는 경우 이러한 모든 기능을 사용할 수 있으며 이것이 순서대로 설정되어야합니다. 그렇지 않으면 오류가 발생할 수 있습니다.
집계 함수는 다음과 같습니다.
MIN은 주어진 열에서 가장 작은 값을 반환합니다
SUM은 주어진 열의 숫자 값의 합계를 반환합니다
AVG는 주어진 열의 평균값을 반환합니다
COUNT는 주어진 열의 총 값 수를 반환합니다
COUNT (*)는 테이블의 행 수를 반환합니다.