etc/데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리
[SQL] 데이터분석가 많이 쓰는 완전 기초 쿼리 5탄 : 집계함수 count, min, max, sum, avg, decode, group by, having
개발하는 민우
2023. 11. 10. 21:19
https://www.youtube.com/watch?v=BSA0MhvbikA
본 글은 [SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리, 을 시청하고 정리한 글입니다.
집계 함수 COUNT, MIN, MAX, SUM, AVG 의 예시
SELECT statn_nm
, count(*) AS 개수
, MIN(BEGIN_TIME) AS 첫출발시간
, MAX(BEGIN_TIME) AS 마지막출발시간
, SUM(NMPR_CNT) AS 총합
, SUM(NMPR_CNT) / COUNT(*) AS 평균1
, AVG(NMPR_CNT) AS 평균2
FROM dasql.tb_pbtrnsp
WHERE statn_nm LIKE '%혜화%'
GROUP BY statn_nm;
2개 이상의 컬럼에 대해, COUNT() 함수를 쓸 시에 GROUP BY을 다 써야함.
SELECT STATN_N
, TKCAR_GFF_SE_CD
, COUNT(*)
FROM DASQL.TB_PBTRNSP
GROUP BY STATN_NM, TKCAR_GFF_SE_CD
ORDER BY STATN_NM DESC, TKCAR_GFF_SE_CD DESC
SELECT NO_LN
, SUM(NMPR_CNT)
FROM DASQL.TB_PBTRNSP
GROUP BY NO_LN
ORDER BY NO_LN
CASE WHEN 구문, DECODE 구문을 이용한 예시
SELECT NO_LN
, SUM(CASE WHEN STATN_NM = '헤화' THEN 1 ELSE 0 END) AS 혜화1
, SUM(DECODE(STATN_NM, '혜화',1,0)) AS 혜화2
, SUM(DECODE(STATN_NM, NULL, 1 , 0)) AS 널값
, SUM(CASE WHEN STATN_NM IN ('혜화', '명동') THEN 1 ELSE 0 END) AS 예시1
, SUM(CASE WHEN STATN_NM IN ('혜화', '명동') THEN NMPR_CNT ELSE 0 END) AS 예시2
, AVG(CASE WHEN STATN_NM IN ('혜화', '명동') THEN NMPR_CNT ELSE 0 END) AS 예시3
, SUM(DECODE(STATN_NM,'혜화',1,'명동',1,0)) AS 예시4
, SUM(DECODE(STATN_NM,'혜화',NMPR_CNT,'명동','NMPR_CNT,0)) AS 예시5
, AVG(DECODE(STATN_NM, '혜화', NMPR_CNT, '명동', NMPR_CNT,0)) AS 예시5
FROM DASQL.TB_PBTRNSP
WHERE HO_LN = '4호선'
GROUP BY HO_LN
ORDER BY HO_LN
HAVING 절을 이용해 조건에 맞는 총 개수 출력하기
SELECT STATN_NM
, COUNT(*) AS 총개수
FROM DASQL.TB_PBTRNSP
GROUP BY STATN_NM
HAVING COUNT(*) > 2