[SQL] #2 기본 함수 (GROUP BY, HAVING, MIN,MAX,COUNT,AVG,SUM )

1 분 소요

[SQL] #2 기본 함수

📌 GROUP BY / HAVING

각종 집계함수, 그룹 함수와 함께 쓰이며 그룹화된 정보를 제공

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
  • WHERE : 조건 처리 후에 컬럼 그룹화
  • HAVING : 컬럼 그룹화 후에 조건 처리
  • 순서 잘 기억하기 (❗️WHERE -> GROUP BY -> HAVING -> ORDER BY)
  • 예시 :
    image
    1. type으로 그룹화 후 name 개수 조회
      SELECT type, COUNT(name) AS cnt
      FROM hero_collection
      GROUP BY type;
      

      결과 image

    2. type > 1 인 type 그룹화 후 name 개수 조회
      SELECT type, COUNT(name) AS cnt
      FROM hero_collection
      WHERE type > 1
      GROUP BY type;
      

      결과 image

    3. type 그룹화 후 name 개수가 2개 이상 데이터 조회
      SELECT type, COUNT(name) AS cnt
      FROM hero_collection
      GROUP BY type
      HAVING cnt >= 2;
      

      결과 image

    4. type > 1 인 type을 그룹화 후 name의 개수 가져온 후, 그 중 개수 2개 이상인 데이터를 type 내림차순으로 조회
      SELECT type, COUNT(name) AS cnt
      FROM hero_collection
      WHERE type > 1
      GROUP BY type
      HAVING cnt >= 2
      ORDER BY type DESC;
      

      결과 image

📌 집계 함수

📌 MIN()

선택된 column_name의 최소 value를 불러온다.

형식 :

SELECT MIN(column_name)
FROM table_name
WHERE condition;

예시 :

# 최소 금액 구하기
SELECT MIN(Price) AS SmallestPrice
FROM Products;

📌 MAX()

선택된 column_name의 최대 value를 불러온다.

SELECT MAX(column_name)
FROM table_name
WHERE condition;

예시 :

# 최대 금액 구하기
SELECT MAX(Price) AS LargestPrice
FROM Products;

📌 COUNT()

column_name의 개수 구하기
형식 :

SELECT COUNT(column_name)
FROM table_name
WHERE condition;

📌 AVG()

numeric column의 평균 값 구하기
형식 :

SELECT AVG(column_name)
FROM table_name
WHERE condition;

📌 SUM()

numeric column의 합계 구하기
형식 :

SELECT SUM(column_name)
FROM table_name
WHERE condition;

📌 그 외 함수

  • median() : 중앙값 반환
  • variance() : 분산 반환
  • stddev() : 표준편차 반환


참고
https://www.w3schools.com/sql/
Group By 설명

댓글남기기