250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

데이터 놀이터

SQL 중급 강의 정리 본문

SQL

SQL 중급 강의 정리

jjjk84 2023. 8. 15. 00:19
728x90

1. 집계함수

 

  • 특징 : NULL값을 제외하고 집계
  • 종류
    • COUNT
    • SUM
    • MIN, MAX
    • AVG
      • NULL 값을 특정 값(0)으로 처리하고 싶을 경우, AVG가 아니라 계산식을 직접 써줘야함
      • 예시
SELECT AVG(CASE WHEN weight IS NULL THEN 0 ELSE weight END)
FROM Players;

 

2. GROUP BY

 

  • 조건을 넣을 경우, HAVING과 WHERE 둘 중 무엇을 써야할지 고민할 것
  • WHERE : 데이터 추출 조건, HAVING : 그룹화 조건
  • SQL문 실행 순서(https://nohriter.tistory.com/129)
    1. FROM : 데이터를 추출할 테이블 확인
    2. WHERE : 데이터 추출 조건 확인
    3. GROUP BY : 그룹화할 컬럼 확인
    4. HAVING : 그룹화 조건 확인
    5. SELECT : 데이터 추출
    6. ORDER BY : 데이터 정렬

 

3. CASE

 

  • CASE WHEN ~ THEN ~ END
  • 조건에 OR, AND 활용 가능
  • SELECT에 CASE를 통해 만든 열로 Group by 가능
  • 문제 풀때 결과를 제대로 확인하기 위해서 end 이후에 확인할 값 쓰기
  • WHEN 순서 중요
  • CASE를 통해 Table pivoting도 가능

 

4. JOIN

 

  • INNER JOIN : 교집합(두 테이블에 데이터가 모두 존재할 경우)
  • LEFT, RIGHT
    • 뒤에 OUTER가 생략되어 있음
    • 보통 실무에서는 LEFT로 많이 처리

 

5. UNION

 

  • UNION : 중복된 값을 제거하고 합집합
  • UNION ALL : 중복된 값을 포함하여 모두 나타냄
  • MySQL에서는 FULL OUTER JOIN이 없기 때문에 LEFT, RIGHT 조인한 걸 UNION으로 합쳐주면 됨

 

6. 기타

 

728x90