본문 바로가기
서비스 기획해요/강의 들어요

[인프런] 배워서 바로 쓰는 SQL 쿼리_#3. SQL 중급 활용(Grouping&Functions)

by ellieyu 2024. 12. 2.
반응형
📌 이 글은 내돈내산으로 '[인프런] Joe의 배워서 바로 쓰는 SQL 쿼리' 강의 내용을 요약 정리한 것입니다. 


Group by 

  • 집계 연산자(sum, count..)를 실행할 때 기준을 알려주는 라인
  • 가령, '국가별로 회원가입자 수를 추출해'라는 명령어를 할 때, '국가별'에 해당하는 부분을 작성하는 것이 group by
  • 기준은 2개 이상 작성할 수 있음. '국가별, 도시별, 성별로 나누어 회원가입자 수를 추출해줘!'와 같은 조건도 설정 가능. 
  • 엑셀에서 pivot을 실행할 때의 기준과도 같은 역할을 함. 

실습 문제

  • select 컬럼, count(*)는 '해당 기준 컬럼이 있는 행의 개수를 모두 세줘'라는 뜻. 

  • 기준 컬럼별 수를 세는 가장 정석적인 방법: select 컬럼, count(distinct 테이블의 ID)

  • order by 할 때 긴 컬럼명을 다 써줄 필요 없이 위치를 숫자 표시로 해도 됨. 
  • ex. order by 2 desc 

  • 컬럼명이 너무 길다 싶으면 as를 써서 컬럼명을 짧게 바꿔줄 수도 있음 ex. cntID

 


Having 

  • group by를 통해 집계한 데이터에 필터를 걸고 싶을 때 사용하는 라인
  • group by와 함께 쓰는 또다른 where절이라고 보면 됨 (group by 없이 사용 불가)
  • 가령, 국가별 회원가입수를 추출해줘!로 나온 결과에서 회원가입자 수가 5명 이상인 결과만 보고 싶다면, having에서 조건을 설정해줌. (having count(*) >5)
  • Sub Query를 통해 대체하는 방법도 있음

실습 문제


집계함수(Aggregate Function)

  • 집계함수라는 뜻으로, 말 그대로 데이터를 집계하는 데에 사용함.
  • select 절 뒤에서 사용하며 각 함수별로 사용법이 다소 상이함.
  • 엑셀에서 자주 쓰는 함수들과 거의 유사함. 

 

자주 사용하는 SQL Function 정리 

  • sum(colmn): 합계
  • avg(colmn): 평균
  • min(colmn), max(colmn): 최소, 최대값 가져오기
  • count(distinct column), count(*): 개수 세기(*를 통해 count를 실행하면 null 값을 포함하여 카운트)
  • select distinct Column1, Column2... : 고유값 
  • substr(column, star_num, end_num): 문자열, 날짜 데이터를 조건에 맞게 잘라줌
  • select Column1 as '이름' : 이름 지어주기
  • case when Condition1 then Value1
               when Condition2 then Value2
               else value3 end
    : 집계함수는 아니지만, 조건 설정(If) 시에 자주 쓰는 명령어
  • len(column) : 길이 반환 
  • right(column), left(column), mid(column) : (오른쪽부터, 왼쪽부터, 중간부터) 문자열자르기
  • upper(column), lower(column) : 대문자로 변환, 소문자로 변환 
  • ifnull(column, 0) : null값 처리 
  • 이 외에도 많은 함수들 존재하므로 외워서 사용하기 보다는 그때그때 필요할 때마다 구글링 하기

 

실습 문제

  • group by는 '~별로'라고 해석할 때 사용하고 그 외 조건은 where 이용 

  • where절에서 Price = min(Price)해서는 안 되고 select절 전체를 적어줘야 함 

  • case when 조건문 쓸 때는 ',' 사용 하지 않기, 끝마칠 때 반드시 end 사용하기 

 

강의 3일차 만에
벌써 전체 강의의 70%를 수강했다!
텐션 잃지 않고 이번 주에 완강해야지!

반응형