해결된 질문
23.06.08 23:09 작성
·
278
0
Analyric을 사용할때 많은 데이터나 필요한 함수가 많아지면 서브쿼리나 with절을 많이 사용해야할거같은데
데이터가 많아지면 복잡한 쿼리를 작성할때 부담스러울거같다는 생각이 들더라구요
차라리 필요한 데이터만 가지고 엑셀로 작업하는게
더 빠르고 엑셀이 가진 GUI를 활용하는게 나을거같다는 생각도 들더라구요
그런데 DB만 검색해봐도 윈도우 함수는 공부하는게 좋다, 이런 이야기가 많은데
그 장점이 뭔지 궁금합니다.
답변 2
2
2023. 06. 09. 17:30
안녕하십니까,
analytic/window 함수는 반드시 익히시는게 좋습니다.
analytic 함수는 SQL에서 analytic을 매우 효율적으로 수행할 수 있을 뿐만 아니라, Group by와 같이 집합의 레벨을 변화 시키지 않고도 특정 순위/aggregation 레벨로 집합을 필터링 시킬 수 있습니다.
과거(한 15년전?)에는 analytic 함수를 배우는게 고급(?) 기술이었지만, 이제는 SQL을 이용하면 analytic 함수의 활용은 (개인적인 의견으로는) 거의 필수라고 생각합니다
analytic SQL은 분석용, 배치, ETL등의 작업에 필수적으로 활용됩니다. 상대적으로 OLTP 영역에서는 활용이 적을 수도 있지만, OLTP에서도 SQL을 쫌~ 사용한다는 사람들은 다 Analytic SQL을 어느 정도는 사용할 능력을 갖추고 있습니다.
데이터 분석시 Excel을 사용해도 되지만, Excel은 대량 데이터를 처리할 수가 없습니다. 과거에는 몇만건(6만 얼마인 걸로 기억합니다만 정확하진 않습니다) 이상의 데이터는 메모리등의 이슈로 Excel로 처리할 수가 없었습니다. 물론 지금은 Power Query가 Excel에 도입되어서 과거에는 다르지만, 여전히 몇십만건 이상의 데이터 처리는 어렵습니다. 개인 PC의 메모리와 CPU 용량 문제도 있지만, 데이터 처리가 RDBMS보다 많이 느리다고 보시면 됩니다.
또한 Excel을 이용하면 원하는 데이터를 가공하기가 어렵습니다. SQL은 조인, 서브쿼리, Group by 등으로 원하는 집합을 기업내의 많은 테이블에서 취합, 가공, 필터링 할 수 있지만 엑셀은 조인을 해서 새로운 데이터를 만들려면 많은 작업을 수행해야 합니다.
Excel을 분석에 사용하지 않는건 아니지만, SQL에 익숙해지면, 분석작업의 생산성이 높아지고, Excel에 대한 의존도가 현저히 낮아질 수 밖에 없습니다. SQL과 Analytic 함수는 그만큼 편리하고 빠르게 분석 작업을 수행할 수 있는 훌륭한 기술입니다.
감사합니다.
2023. 06. 10. 00:21
감사합니다 !
강사님 덕분에 회사에서 쿼리 작성할때 강사님이 읊어주신걸 떠올리면서 작성하려고 노력합니다,
그리고 사수님이 덤으로 조언을 해주시면서 조금씩 어려운 쿼리를 작성해보고 있습니다.
남은 강의도 열심히 듣겠습니다. 감사합니다