문과생의 데이터 연습

Lag & Lead 함수 사용하기! [MySQL] (2) 본문

SQL/MySQL

Lag & Lead 함수 사용하기! [MySQL] (2)

의인은 믿음으로 2022. 4. 29. 07:36
728x90

 

MySQL에서 Lag & Lead 함수 쓰는법! 

이번 글에서는 저번글에 이어서 Lag & Lead 함수를 이용해 추가적인 실습연습을 해보겠습니다. 

 

실습은 똑같이 MySQL workbench에서 진행합니다! 

데이터도 코로나 데이터 입니다. 

 

1.) lag + over + Partition by

prartition by 사용법 기억나시죠?^^ 😮

 

이번 연습은 일일확진자의 합계를 구하고 그것을 년도별 나라별로 보겠습니다.

마지막은 lag함수를 쓸겁니다^^  

SELECT location, Year_corona, Sum_cases,
       lag(Sum_cases, 1, 0) over(partition by location order by Year_corona) as cases_lag
FROM(
SELECT location, sum(new_cases) as Sum_cases, year(date) as Year_corona
FROM corona_world 
GROUP BY location, Year_corona) as corona  ;

현재 글 작성기준으로는 2022년 4월이기 때문에 아무래도 합계에서 밀리는 모습입니다. 

2021년에 거의 모든 나라들이 확진자가 가장 많은 것 같네요. 

 

한국을 한번 볼까요? (❁´◡`❁)

SELECT location, Year_corona, Sum_cases,
       lag(Sum_cases, 1, 0) over(partition by location order by Year_corona) as cases_lag
FROM(
SELECT location, sum(new_cases) as Sum_cases, year(date) as Year_corona
FROM corona_world 
GROUP BY location, Year_corona) as corona 
WHERE location = 'South Korea' ;

띠용 한국 2022년...

한국은 특이하게 2022년에 난리가 났네요 ㅋㅋ 작성기준으로 4월밖에 안됐는데도 불구하고 2020년과 2021년의 전체 확진자를 다 더해도 2022년 4월 까지 코로나에 걸린 확진자가 압도적입니다 😮

 

                                                                좋은거야? 나쁜거야?

근데 방금 나온 인사이트는 lag함수와는 전혀 관련이 없네요 ㅎㅎ.. 

이건 추후 파이썬으로 분석하는게 더 좋을 것 같습니다. 

 

 

 

여튼 ㅎㅎ 이렇게 해서 lag와 Partition by의 함수 사용법도 알아봤습니다. 

 

틀린부분이나 피드백부분이 있으면 댓글 부탁드립니다. 감사합니다! 

 

 

 

 

 

728x90
Comments