SQL 구문 중 orderby_、group_by_、having 의 용법 차이

4274 단어 having
order by 는 영어 로 이해 하면 줄 의 정렬 방식 이 고 기본 값 은 오름차 순 입 니 다.orderby 뒤에 정렬 된 필드 이름 을 표시 해 야 합 니 다.여러 필드 이름 일 수 있 습 니 다.
group by 는 영어 로 이해 하면 그룹 을 나 누 는 것 이다."집합 함수"가 있어 야 사용 할 수 있 습 니 다.사용 할 때 최소한 하나의 그룹 표지 필드 가 필요 합 니 다.
집합 함수 란 무엇 입 니까?
sum(),count(),avg()등 은 모두'집합 함수'로 group by 를 사용 하 는 목적 은 데 이 터 를 분류 하여 모 으 는 것 이다.
일반적으로 select 단위 명칭,count(직원 id),sum(직원 급여)form[모 표]group by 단위 명칭 과 같은 운행 결 과 는'단위 명칭'을 분류 표지 로 각 단위 의 직원 수 와 임금 총액 을 통계 하 는 것 이다.
sql 명령 형식 에서 사용 하 는 우선 순위 에서 group by 는 orderby 보다 앞 선다.
select 명령 의 표준 형식 은 다음 과 같 습 니 다.
1 SELECT select_list 2 [ INTO new_table ] 

3 FROM table_source 4 [ WHERE search_condition ] 

5 [ GROUP BY group_by_expression ] 

6 [ HAVING search_condition ]

1.GROUP BY 는 그룹 조회 이 며,일반 GROUP BY 는 취 합 함수 와 함께 사 용 됩 니 다.
group by 는 select 뒤의 모든 열 에 집합 함 수 를 사용 하지 않 은 열 이 있 습 니 다.group by 뒤에 나타 나 야 한 다 는 원칙 이 있 습 니 다(중요)
예 를 들 어 다음 과 같은 데이터베이스 테이블 이 있 습 니 다.
A    B 1    abc 1    bcd
1    asdfg
다음 과 같은 조회 문구 가 있다 면(이 문 구 는 잘못된 것 이 고 원인 은 앞의 원칙 참조)
select A,B from table group by A
이 검색 어의 의 도 는 다음 과 같은 결 과 를 얻 으 려 는 것 이다.
A     B        abc 1     bcd
       asdfg
오른쪽 세 개가 어떻게 하나 가 되 는 지 집합 함 수 를 사용 해 야 합 니 다.다음 과 같 습 니 다.
select A,count(B)as 수량 from table group by A 이런 결 과 는 A 수량 1    3
2. Having 
    이것 은 집합 함수 에 쓰 이 는 용법 이다.우리 가 취 합 함 수 를 사용 할 때,일반적으로 GROUP BY 를 사용 하여 먼저 그룹 을 나 눈 다음 에 취 합 함수 의 연산 을 해 야 한다.연산 이 끝 난 후에 HAVING 의 용법 을 사용 해 야 한다.예 를 들 어 집합 함수 의 값 이 특정한 값 보다 큰 지 판단 하 는 등 이다.
1 select customer_name,sum(balance)

2 

3 from balance

4 

5 group by customer_name

6 

7 having balance>200; yc_rpt_getnew

  where 자구 의 역할 은 조회 결 과 를 그룹 으로 나 누 기 전에 where 조건 에 부합 되 지 않 는 줄 을 제거 하 는 것 입 니 다.즉,그룹 을 나 누 기 전에 데 이 터 를 걸 러 내 는 것 입 니 다.조건 에 집합 함 수 를 포함 할 수 없고 where 조건 으로 특정한 줄 을 표시 합 니 다.
having 자구 의 역할 은 조건 을 만족 시 키 는 그룹 을 선별 하 는 것 입 니 다.즉,그룹 을 나 눈 후에 데 이 터 를 걸 러 내 는 것 입 니 다.조건 에는 집합 함수 가 자주 포함 되 어 있 습 니 다.having 조건 으로 특정한 그룹 을 표시 하고 여러 개의 그룹 기준 으로 그룹 을 나 눌 수 있 습 니 다.
having 자 구 는 SELECT 구문 에서 정 의 된 열 과 집합 식 에 제한 되 어 있 습 니 다.보통 HAVING 자구 에서 집합 함수 표현 식 을 반복 해서 집합 값 을 인용 해 야 합 니 다.SELECT 문구 에서 한 것 처럼.예 를 들 면:
SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)>2
 Grouping 의 용법:
group by 목록 에서 지정 한 표현 식 을 취 합 할 지 여부 입 니 다.결과 에 집중 하면 Grouping 이 1 로 돌아 가면 취 합 을 표시 합 니 다.Grouping 이 0 으로 돌아 가면 비 중합 을 표시 합 니 다.Group by 를 지정 하면 Select,Having,Order by 에 만 사용 할 수 있 습 니 다.
설명:
GROUPING 은 표준 빈 값 과 ROLLUP,CUBE 또는 GROUPING SETS 가 되 돌아 오 는 빈 값 을 구분 하 는 데 사 용 됩 니 다.ROLLUP,CUBE 또는 GROUPING SETS 작업 결과 로 되 돌아 오 는 NULL 은 NULL 의 특수 응용 프로그램 입 니 다.그것 은 결과 집합 에서 열의 자리 표시 자로 서 전 체 를 나타 낸다.

좋은 웹페이지 즐겨찾기