본문 바로가기

SQL

SQLD 시험 대비 - SQL 기본 (3)

다중행 집계 함수

1. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다.

2. GROUP BY 절은 행들을 소 그룹화 한다.

3. Select , Having, Order By 절에 사용가능

-  All : Default 옵션, 생략 가능

Distinct : 같은 값을 하나의 데이터로 간주 옵션

 

Count(*) : Null 포함 행의 수

Count(표현식) : Null 제외 행의 수

Sum, Avg : Null 제외 합계, 평균 연산

Stddev: 표준편차 

Varian : 분산

Max , Min : 최댓값, 최솟값

 

Group By, Having절의 특징

1. Group By 절을 통해 고 소 그룹별 기준을 정한 후 Select 절에 집계함수를 사용한다.

2. 집계 함수의 통계정보는 Null 값을 가진 행을 제외하고 수행한다.

3. Group By 절에서는 ALIAS 사용 불가

4. 집계함수는 Where절에 올 수 없다.

5. Having 절에서는 집계 함수를 이용하여 조건 표시 o

6. Having 절은 일반적으로 Group By 뒤에 위치

 

Order By 절의 특징

1. SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정한 칼럼을 기준으로 정렬하여 출력하는 데 사용한다.

2. Order By 절에 칼럼명 대신 ALIAS 명이나 칼럼순서를 나타내는 정수도 사용가능하다.

3. Default 값으로 오름차순( ASC )이 적용되며 DESC를 통해 내림차순으로 정렬이 가능하다.

4. SQL 문장의 제일 마지막에 위치한다.

5. Select 절에서 정의하지 않은 칼럼 사용 가능

 

Oracle에서는 Null을 가장 큰 값으로 취급하고

Sql Server에서는 Null을 가장 작은 값으로 취급한다.

Sql Server의 With Ties 

ex_ Q) 급여가 높은 2명내림차순으로 출력하는데 같은 급여를 받는 사원은?

A) Select Top(2) With Ties Ename, Sal from Emp Order By Sal Desc;

 

JOIN : 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것

일반적으로 행들은 PK나 FK값의 연관에 의해 JOIN이 성립된다. 어떤 경우에는 PK, FK관계가 없어도 논리적인 값들의 연관만으로 JOIN이 성립된다.

ex_ 5가지 테이블을 JOIN 하기 위해서는 최소 4번의 JOIN 과정이 필요하다. (N-1)

 

EQUI JOIN : 2개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용, 대부분 PK, FK의 관계를 기반으로 한다.

ex_ Select 테이블 A. 칼럼명, 테이블 B. 칼럼명

ex_ From에 조건 명시하는 경우 Select 테이블 A. 칼럼명, 테이블 B. 칼럼명 From 테이블 A Inner Join 테이블 B ON 테이블 A. 칼럼명 = 테이블 B. 칼럼명

(*  Group By에는 별칭 사용 못함)

 

NON EQUI JOIN: 2개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용

' = ' 연산자가 아닌 Between , >, <= 등 연산자 사용

 

반응형