데이터 이야기/SQL

[데이터분석 - SQL ] #2-2. WHERE / GROUP BY / HAVING / ORDER BY절

sssoing-k 2022. 11. 3. 18:42

1. WHERE 절

원하는 데이터만 골라 수행할 수 있도록 해주는 구문

 

(1) 비교 연산자

연산자 의미
= 같음
< 작음
<= 작거나 같음
>
>= 크거나 같음

 

(2) 부정 비교 연산자

연산자 의미
!= 같지 않음
^=
<>
not 컬럼명 =
not 컬럼명 > 크지 않음

 

(3) SQL 연산자

연산자 의미
BETWEEN A AND B A와 B의 사이(A,B 포함)
LIKE '비교문자열' 비교문자열을 포함
IN (LIST) LIST 중 하나와 일치
IS NULL NULL 값

 

(4) 부정 SQL 연산자

연산자 의미
NOT BETWEEN A AND B A와 B의 사이가 아님(A,B 미포함)
NOT IN (LIST) LIST 중 일치하는 것이 없음
IS NOT NULL NULL 값이 아님

 

(5) 논리 연산자

연산자 의미
AND 모든 조건이 TRUE
OR 하나 이상의 조건이 TRUE
NOT TRUE면 FALSE, FALSE면 TRUE

* 처리 순서 : ( ) > NOT > AND > OR

 

 

 

2. GROUP BY, HAVING 절

(1) GROUP BY 절

데이터를 그룹별로 묶을 수 있도록 해주는 절

 

(2) 집계함수

COUNT(*) 전체 ROW를 COUNT하여 반환 숫자/문자
COUNT(컬럼) 컬럼값이 NULL인 ROW를 제외하고 COUNT하여 반환 숫자/문자
COUNT(DISTINCT 컬럼) 컬럼값이 NULL아닌  ROW에서 중복을 제거한 COUNT를 반환 숫자/문자
SUM(컬럼) 컬럼값들의 합계를 반환 (*NULL 제외) 숫자
AVG(컬럼) 컬럼값들의 평균값 반환 (*NULL 제외) 숫자
MIN(컬럼) 컬럼값들의 최소값 반환 숫자/문자
MAX(컬럼) 컬럼값들의 최대값 반환 숫자/문자

 

(3) HAVING 절

GROUP BY 절을 사용할 때 특정 그룹을 골라낼 수 있는 조건절

 

SELECT 문의 논리적 수행 순서
  1. FROM
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. SELECT
  6. ORDER BY

> WHERE 절에서 필터링이 선행되어야 GROUP BY 할 데이터량이 줄어든다.

 

 

(4) ORDER BY 절

정렬을 변경하는 조건절로 SELECT 문에서 논리적으로 맨 마지막에 수행됨
  • ASC : 오름차순 *기본값
  • DESC : 내림차순

*ORACLE의 경우 NULL을 최댓값으로 취급 / SQL Server는 반대