데이터베이스에서 특정 열을 기준으로 데이터를 그룹화하여 각 그룹의 집계 함수(aggregate function) 를 계산할 수 있으며, 통계 정보를 추출할 때 사용된다.
SELECT
문장의 마지막 부분에 위치하며, 그룹화하려는 필드 이름을 지정한다.
GROUP BY
의 기본 문법SELECT column_name(s) FROM table_name GROUP BY column_name(s);
데이터를 원하는 기준에 따라 묶어서 보여줄 수 있다.
이는 데이터의 구성 요소를 파악하거나, 그룹 간의 차이점을 비교하는 데 유용하다.또한,
MIN
,MAX
,AVG
,ROUND
등의 함수를 사용하여 필드의 최소값, 최대값, 평균값 등을 계산할 수 있다.
MIN
: 주어진 열에서의 최소값.
주로 숫자열에 대해 사용되지만, 날짜 등의 데이터 타입에서도 사용될 수 있다.SELECT MIN(column_name) FROM table_name WHERE condition;
MAX
: 주어진 열에서의 최대값.
MIN
과 마찬가지로 숫자열에 대해 사용되지만, 다른 데이터 타입에서도 사용될 수 있다.SELECT MAX(column_name) FROM table_name WHERE condition;
AVG
, : 주어진 열의 평균값.
주로 숫자열에 대해 사용된다.SELECT AVG(column_name) FROM table_name WHERE condition;
ROUND
: 주어진 수를 반올림.
첫 번째 인수(column_name) 로는 함수를 적용할 열 이름(수)를,
두 번째 인수(num_of_decimals) 로는ROUND
함수에서 선택적으로 지정할 수 있는
반올림할 소수점 자릿수(0, 1, 2, ...) 다.
WHERE
절은 선택적으로 사용할 수 있으며, 조건에 해당하는 행만 처리된다.SELECT ROUND(column_name, num_of_dicimals) FROM table_name WHERE condition;
위의 함수들은 모두 데이터 집합에서 원하는 값을 계산하여 반환하기 때문에,
주로GROUP BY
와 함께 사용할 때 가장 유용하며, 특정 조건에 따라 그룹화된 데이터에서 통계값을 구하는 데 활용된다.
또, 데이터의 합을 계산하는 SUM
함수나, 집계값을 오름차순이나 내림차순으로 정렬하는 ORDER BY
를 활용할 수도 있다. 이를 통해 데이터의 특성을 더욱 자세히 파악할 수 있다.
결과 집합을 정렬하는 데 사용된다. ORDER BY
는 SELECT
또는 서브쿼리(subquery) 에 적용될 수 있으며, 집계값을 오름차순이나 내림차순으로 정렬할 수 있다.
SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC;
기본적으로 오름차순(ascending)으로 정렬되며, 이에따라 생략할 수 있다. 만약 내림차순(Descending)으로 정렬하려면 DESC 키워드를 추가하면 된다.
최종적으로, 위와같은 SQL 집계 함수들은 데이터 분석에 있어서 필수적인 도구다.
이러한 함수들을 활용하여 데이터의 특성을 파악하고, 의미 있는 정보를 도출하는 데 성공할 수 있다.
별칭(Alias) 은 SQL 에서 열이나 테이블에 대해 원래의 이름 대신 새로운 이름을 부여하여 쉽게 바꿀 수 있으며, 복잡한 문장의 길이를 쉽게 읽을 수 있게 직관적인 코드로 작성할 수 있도록 줄일 수 있고 결과의 가독성을 높이는 등 다양한 용도로 사용될 수 있다.
일반적으로
AS
키워드를 사용한다.SELECT column_name AS alias_name FROM table_name
SELECT apple AS a, banana AS b FROM fruit
table_name 테이블에서 모든 행들의 column_name 열 값들을 alias_name 으로 출력한다.
따라서, fruit 테이블의 apple 은 a 로 banana 는 b 로 출력된다.
별칭은 테이블 이름이 너무 길거나, 여러 테이블을 JOIN
하는 경우에 특히 유용하다.