Database

[DATABASE] ORDER BY, GROUP BY

ju_young 2023. 11. 26. 22:36
728x90

 

ORDER BY

  • 조회 결과를 특정 attribute 기준으로 정렬
  • 기본은 오름차순 정렬이며 ASC로 표기
  • 내림차순은 DESC로 표기
SELECT *
FROM article ORDER BY created_at [ASC];
  • 위 쿼리는 작성일 순서로 오름차순 정렬한 article 결과를 반환한다.

aggregate function

  • 여러 tuple들의 정보를 요약해서 하나의 값으로 추출하는 함수
  • 대표적으로 COUNT, SUM, MAX, MIN, AVG 함수가 있음
  • NULL 값들은 제외한다.
SELECT COUNT(*) FROM article;
  • 위 쿼리는 article 수를 출력한다.

GROUP BY

SELECT C.article_id, COUNT(*)
FROM comment C
GROUP BY C.article_id;
  • 특정 attribute를 기준으로 그룹을 나누어서 그룹별로 aggregate function을 적용할때 사용한다.
  • 위 쿼리에서는 comment에서 article_id 별로 그룹화하여 각 그룹별 개수를 출력하는 것이다.

HAVING

SELECT C.article_id, COUNT(*)
FROM comment C
GROUP BY C.article_id
HAVING COUNT(*) >= 7;
  • HAVINGGROUP BY와 함꼐 사용한다.
  • GROUP BY의 결과값을 바탕으로 그룹에 조건을 정의할 때 사용한다.
  • 위 쿼리에서는 article_id별로 그룹화했을 때 7개 이상인 그룹만 출력하는 것이다.
728x90

'Database' 카테고리의 다른 글

[DATABASE] Stored Procedure  (1) 2023.11.29
[DATABASE] Stored Function  (0) 2023.11.27
[DATABASE] JOIN  (1) 2023.11.26
[DATABASE] NULL  (0) 2023.11.23
[DATABASE] Subquery (서브쿼리) - IN, (NOT) EXISTS, ANY, ALL  (0) 2023.11.22