GROUP BY, ORDER BY, Alias
1. 통계
GROUP BY
와 ORDER BY
는 주로 통계를 구할때 사용하며, 여기서 통계는 최대, 최소, 평균, 합계를 의미합니다. 이제부터 쿼리문이 길어지고, 복잡해지기 시작하는데 침착하게 쿼리문을 작성해보면 생각보다 어렵지 않다는 것을 느낄 수 있다고 생각합니다.
- 여러 조건을 나타내는 쿼리문을 한 번에 작성한다. : ( X )
- 조건을 하나씩 맞추어 쿼리문을 여러 차례 수정하면서 작성한다. : ( O )
2. GROUP BY
GROUP BY
를 사용할 때에는 반드시 통계 방법을 명시하여야 합니다. 먼저, 테이블에서 A 필드의 개수를 구하는 쿼리문을 작성하면 다음과 같습니다.
-- COUNT는 개수를 파악하는 함수입니다.
SELECT COUNT(*) FROM TBL
GROUP BY A;
쿼리문을 아래와 같이 작성하면 GROUP BY와 같은 결과를 확인할 수 있습니다.
-- DISTINCT는 중복 제거 함수입니다.
SELECT COUNT(DISTINCT(A)) FROM TBL;
만약에 구하고자 하는 통계 방법을 명시하지 않고 아래와 같이 쿼리문을 작성하면 오류가 발생합니다.
-- 통계 방법이 없으므로 오류가 발생합니다.
SELECT * FROM TBL
GROUP BY A;
테이블에서 A 필드의 데이터를 기준으로, C 필드의 데이터 값이 50 이상인 행의 수를 구하면 다음과 같습니다.
SELECT A, COUNT(*) FROM TBL
WHERE C >= 50
GROUP BY A;
3. ORDER BY
ORDER BY
는 조회한 데이터를 오름차순(ascending
) 또는 내림차순(descending
)으로 정렬할 때 사용합니다. 테이블에서 C 필드의 데이터를 각각 오름차순과 내림차순으로 정렬된 상태로 조회하면 다음과 같습니다.
-- 오름차순은 ASC 생략이 가능합니다.
SELECT * FROM TBL
ORDER BY C;
-- 내림차순은 반드시 DESC를 입력해주어야 합니다.
SELECT * FROM TBL
ORDER BY C DESC;
ORDER BY
는 GROUP BY
와 함께 자주 사용되며, 테이블의 A 필드의 행 수를 내림차순으로 정렬하면 다음과 같습니다.
SELECT A, COUNT(*) FROM TBL
GROUP BY A
ORDER BY COUNT(*) DESC;
4. Alias
Alias
는 별칭이라고도 하며, 바로 위의 쿼리문과 같이 함수를 다시 호출해야 하는 상황이거나, 테이블 또는 필드명이 긴 경우에 별도의 이름을 붙여주기 위해 사용합니다. 먼저, 테이블의 A 필드의 행 수를 내림차순으로 정렬할 때, 행 수에 CNT 라는 별칭을 붙여주면 다음과 같습니다.
SELECT A, COUNT(*) as CNT FROM TBL
GROUP BY A
ORDER BY CNT DESC;