SQL 에서 Group By 의 용법 을 자세히 설명 합 니 다.

4427 단어 sqlgroupby사용법
GROUP BY 문 구 는 합계 함 수 를 결합 하여 하나 이상 의 열 에 따라 결과 집합 을 묶 는 데 사 용 됩 니 다.
1.개술
'Group By'는 말 그대로'By'가 지정 한 규칙 에 따라 데 이 터 를 그룹 으로 나 누 는 것 이다.이른바 그룹 은 하나의'데이터 세트'를 여러 개의'작은 구역'으로 나 눈 다음 에 여러 개의'작은 구역'에 대해 데이터 처 리 를 하 는 것 이다.
2.원시 표

3,간단 한 그룹 으로
예시 1
select 카 테 고리,sum(수량)as 수량의 합 from A group by 카 테 고리
결 과 를 다음 표 로 되 돌려 주 는 것 은 사실상 분류 집합 이다.

4,Group By 와 Order By
예시 2
select 분류,sum(수량)AS 수량의 합 from A group by 분류 order by sum(수량)desc
결 과 를 다음 표 로 되 돌려 줍 니 다.

Access 에 서 는"order by 수량의 합 desc"를 사용 할 수 없 지만 SQL Server 에 서 는 사용 할 수 있 습 니 다.
5、Group By 중 Select 가 지정 한 필드 제한
예시 3
select 분류,sum(수량)as 수량의 합,요약 from A group by 분류의 order by 분류의 desc
예시 3 을 실행 한 후 오 류 를 알려 줍 니 다.다음 그림 입 니 다.이것 이 바로 주의해 야 할 점 입 니 다.select 에서 지정 한 필드 는 Group By 문장의 뒤에 포함 되 거나 그룹의 근거 로 해 야 합 니 다.아니면 집합 함수 에 포함 되 어야 합 니 다.

6、Group By All
예시
select 카 테 고리,요약,sum(수량)as 수량의 합 from A group by all 카 테 고리,요약
예제 4 에 서 는'요약'필드 를 지정 할 수 있 습 니 다.그 이 유 는'다 열 그룹'에'요약 필드'가 포함 되 어 있 기 때 문 입 니 다.그 실행 결 과 는 다음 과 같 습 니 다.

'다 열 그룹'은 실제 적 으로 다 열(유형+요약)이 합 쳐 진 값 에 따라 그룹 을 나 누 는 것 이다.예시 4 에서'a,a2001,13'은'a,a2001,11'과'a,a2001,2'두 기록 의 합병 을 볼 수 있다.
SQL Server 에 서 는'group by all'을 지원 하지만 Microsoft SQL Server 의 미래 버 전 은 GROUP BY ALL 을 삭제 하고 새로운 개발 작업 에서 GROUP BY ALL 을 사용 하지 않도록 합 니 다.Access 에 서 는"Group By All"을 지원 하지 않 지만 Access 에 서 는 다 열 그룹 을 지원 합 니 다.상기 SQL Server 의 SQL 은 Access 에서 쓸 수 있 습 니 다.
select 카 테 고리,요약,sum(수량)AS 수량의 합 from A group by 카 테 고리,요약
7.Group By 와 취 합 함수
예제 3 에서 group by 구문 에서 select 가 지정 한 필드 는'그룹 근거 필드'여야 합 니 다.다른 필드 가 select 에 나타 나 려 면 취 합 함수 에 포함 되 어야 합 니 다.흔히 볼 수 있 는 취 합 함 수 는 다음 과 같 습 니 다.
함수.
역할.
지지 성
sum(열 이름)
화 해 를 구하 다
max(열 이름)
최대 치
min(열 이름)
최소 값
avg(열 이름)
평균 값
첫 번 째(열 이름)
제1조 기록
액세스 지원 만
마지막(열 이름)
마지막 기록
액세스 지원 만
count(열 이름)
통계 기록 수
주의 와 count(*)의 차이
예시 5:각 그룹의 평균 값 을 구하 다
카 테 고리 별 avg(수량)AS 평균 값 을 A group 에서 카 테 고리 별로 선택 합 니 다.
예시 6:각 그룹의 기록 수량 을 구하 십시오
카 테 고 리 를 선택 하고 카 테 고리 별로 A 그룹 에서 AS 기록 수 를 계산 합 니 다.
예시 7:각 그룹의 기록 수량 을 구하 십시오
8.Having 과 Where 의 차이
•where 자구 의 역할 은 조회 결 과 를 그룹 으로 나 누 기 전에 where 조건 에 부합 되 지 않 는 줄 을 제거 하 는 것 입 니 다.즉,그룹 을 나 누 기 전에 데 이 터 를 걸 러 내 는 것 입 니 다.where 조건 에 집합 함 수 를 포함 하지 않 고 where 조건 으로 특정한 줄 을 걸 러 내 는 것 입 니 다.
•having 자구 의 역할 은 조건 을 만족 시 키 는 그룹 을 선별 하 는 것 입 니 다.즉,그룹 을 나 눈 후에 데 이 터 를 걸 러 내 는 것 입 니 다.조건 에는 집합 함수 가 자주 포함 되 어 있 습 니 다.having 조건 으로 특정한 그룹 을 걸 러 내 거나 여러 개의 그룹 기준 으로 그룹 을 나 눌 수 있 습 니 다.
예시
select 클래스,sum(수량)as 수량의 합 from A
그룹 별 분류
having sum(수량)>18
예 9:Having 과 Where 의 공동 사용 방법
A 에서 카 테 고리,SUM(수량)선택
수량 lt;8
그룹 별 분류
(수량)lt;10
9.Compute 와 Compute By
수량>8 에서*를 선택 하 십시오.
실행 결과:

예제 10:컴 퓨 팅
select*from A where 수량>8  ompute max(수량),min(수량),avg(수량)
실행 결 과 는 다음 과 같 습 니 다.

컴퓨터 자 구 는'조회 결과'의 데이터 세부 사항 을 관찰 하거나 각 열 데이터(예 를 들 어 10 중 max,min,avg)를 통계 할 수 있 으 며,결 과 를 되 돌려 주 는 것 은 select 목록 과 copte 통계 결과 로 구성 된다.
예시 11:Compute By
select*from A where 수량>8 order by 분류의 compute max(수량),min(수량),avg(수량)분류 별
실행 결 과 는 다음 과 같 습 니 다.

예시 11 은 예시 10 에 비해'orderby 분류'와'...by 분류'가 많 았 다.예시 10 의 실행 결 과 는 실제 그룹(a,b,c)에 따라 나 타 났 다.각 그룹 은 그룹 데이터 목록 과 그룹 수 통계 결과 로 구성 되 었 다.또한:
•compute 자 구 는 order by 자구 와 함께 사용 해 야 합 니 다.
•compute...by 는 group by 에 비해 group by 는 각 그룹의 데이터 통계 결과 만 얻 을 수 있 을 뿐 각 그룹의 데 이 터 를 볼 수 없습니다.
실제 개발 에서 compute 와 compute by 의 역할 은 그리 크 지 않 습 니 다.SQL Server 는 compute 와 compute by 를 지원 하지만 Access 는 지원 하지 않 습 니 다.

좋은 웹페이지 즐겨찾기