Database/SQL

[SQL] GROUP BY, HAVING, ORDER BY

서리★ 2024. 5. 15. 22:49

여러 개의 레코드들을 하나의 그룹으로 묶어준다.

 

*GROUP BY 절을 UNION 연산자를 사용한 SQL의 각각의 집합에 사용 가능

집계함수

SUM(컬럼) : 컬럼값들의 합계를 반환

*주의) 같은 행 데이터를 더할 때 NULL이 포함되면 결과가 NULL

*주의) 같은 열 데이터를 더할 때 NULL이 포함되면 NULL을 제외하고 더할 것

 

*ORDER BY 절에 숫자가 나오는 것은 SELECT에 있는 컬럼의 순서를 가리킨다.

*ORDER BY 절에 나올 컬럼은 SELECT에 나오는 컬럼만 가능하다. 또는 표현식도 가능

*ORDER BY 절은 UNION 연산자를 사용한 SQL의 각각의 집합에 사용할 수 없다

-> ORDER BY 절은 마지막 최종 결과에만 쓸 수 있다.

 

*ORDER BY 절로 컬럼 순으로 정렬하는 것이 아니라 특정 조건에 따라 가중치를 변경해서 정렬하고 싶은 경우

ORDER BY CASE 컬럼

                               WHEN 값1 THEN N1

                               WHEN 값2 THEN N2...

                    ELSE [~]

                    END [~]

예를 들어 END에서 DESC가 있다면, CASE 가중치로 내림차순 정렬해준다. (기본은 오름차순)