본문 바로가기

성동1기 전Z전능 데이터 분석가 과정

[전Z전능 DA] Day19 - SQL 기초 이해 2 , SQL 기본 개념

🎯스프레드 시트로 QUERY문 작성해보기

 

  • SELECT SUM(A) ~ : 열방향 합계. 행별 합계는 안된다 
  • SELECT A OFFSET 10 : A열 값 중 10개를 건너띄고 가져온다 ( 컬럼을 건너뛰고 가져오는것은 안됨) 
  • ORDER BY 컬럼명 : 지정한 컬럼을 오름차순 ASC(default), 내림차순  DESC 정렬
  • GROUP BY 컬럼명 :  계산된 결과를 지정 컬럼의 카테고리로 그룹해서 보여줌(SUM,AVG,COUNT  등과 사용) , 계산 안된 필드값 표시는 불가능
  • ABS(숫자) : 절대값으로 표시, 전부 음수로 보고싶다면 ABS(숫자) x -1 
  • LABEL 컬럼명 '바꿀이름' : SELECT로 불러오는 컬럼의 이름을 변경
  • LIMIT 숫자 : 데이터를 가져올 때 행의 수를 제한하는 명령어 
  • WHERE : SELECT으로 가져오는 데이터중 특정 조건에 해당하는 데이터를 가져오는 명령어 
    • AND , OR, NOT , 비교연산자와 사용 (=, !=, >,,,등등)

 

🌵실습해보기

 

 

 

 

1.쿠키의 판매량이 케이크와 파이의 판매량 합의 4배를 초과한 날짜 찾기

 

 

 

=query(A1:F21, "SELECT A,D,(B+C) WHERE D>(B+C)*4")

 

 

 

 

 

 

 

 

 



2.케이크 판매량이 쿠키 판매량보다 낮은 날짜 중, 상위 3개의 쿠키 판매량을 가진 날짜 찾기

 

 

 

=query(A1:F21, "SELECT A,B,D WHERE B<D ORDER BY D DESC LIMIT 3")

 

 



3.프로모션이 없는 날 중에서 케이크와 쿠키 판매량의 차이가 가장 큰 날짜 찾기 (Hint : ABS)

 

 

=query(A1:F21, "SELECT A,D-B WHERE E='none' ORDER BY D-B DESC LIMIT 1 ")

⚡스프레드시트 쿼리문에서 ABS() 사용불가

 



4.프로모션을 한 날 중, 케이크 판매량이 80 이상이며, 쿠키 판매량이 600 이상인 날짜 찾기

 

=query(A1:F21, "SELECT A,E,B,D WHERE E='promotion' AND B>=80 AND D>=600")

 

 



5.프로모션 유무별로 케이크의 최대 판매량과 최소 판매량 차이를 계산해 보세요

 

 

=query(A1:F21, "SELECT E, MAX(B),MIN(B),MAX(B)-MIN(B) GROUP BY E ")

 

 

 

 

 

💡미니프로젝트 대략 설명

 

IMPORTHTML 함수로 각 URL의  TABLE  긁어오기(크롤링)  - 가구시청률 TOP10 (케이블,지상파,종편) - 매일 바뀌는 정보 반영함

 

시청률 표를 합치기 , 합친 TOP10 , 그 중 SBS 점유율

 

 

={범위}     블럭으로 합치기 (매일매일 바뀌는 정보도 그대로 반영된다)

 

합치는 과정없이 바로 쿼리문으로 정리 할 수 있다  (공백도 값으로 인지해서 오름차순 정렬할시 상위에 공백값이 나온다 DESC로 정렬해보자)

 

SQL EDITOR : DB 연결해서 해볼수 있다

 

 


 

🍄오랜만에 하는 SQL 다행히 많이 까먹지는 않았다. 스프레드시트에서 쿼리문 작성을 할 수 있었다니 몰랐던 사실이라 신기하다. 엑셀 리터리시 강의보다는 수월해서 마음편한 학습 시간이었다.

 

주말전에 시각화 포트폴리오 만들기..