MySQL

ORDER BY / COUNT / SUM / AVG / MIN / MAX / GROUP BY / CASE

S.T.Lee 2022. 11. 16. 21:20

ORDER BY

  • 정렬을 해준다
  • 만약 WHERE절이랑 같이 쓰이면 뒤에 적용해야한다
  • ASC
    • ascending : 오름차순 정렬
  • DESC
    • descending : 내림차순 정렬

 

COUNT

  • 해당 컬럼이 몇개 있는지 세준다
  • ex) SELECT COUNT(name) FROM table_ WHERE age < 20

 

SUM, AVG, MIN, MAX

  • 합산, 평균, 최솟값, 최댓값

GROUP BY

  • 테이블 레코드를 그룹 맺어준다
  • 주로 aggregate function과 함께 쓰인다
    • count, max, min, sum, avg
  • 1개 이상의 column에 대해 가능하다
  • 왠만해선 조건을 HAVING에 넣어주는게 좋으나 WHERE를 사용한다면 GROUP BY보다 선행되어야한다

 

HAVING

  • GROUP BY에 조건을 할당한다

 

CASE

  • 경우에 수에 따라 나눌 수 있다
  • CASE 컬럼
    • WHEN 조건 THEN 컬럼
    • WHEN 조건 THEN 컬럼
    • ELSE 컬럼
  • END
  • ELSE를 생략할 경우 NULL로 설정된다
  • CASE를 활용하여 테이블 피봇이 가능하다
    • SELECT SUM(CASE
      • WHEN id=1 THEN categoryPrice
      • ELSE NULL
      • END) AS categoryTotalPrice
    • FROM table
    • id가 1인 카테고리에 대해서 가격 총 합을 알 수 있다.