내일배움캠프_데이터분석_2기/TIL

[TIL] camp_day3_240417

단ee 2024. 4. 17. 23:27
  • 1주차 세번째 날. 프로젝트 결론도 냈고, PPT 작업도 어느 정도 진행되었다. 이제 내일 수정하고, 발표영상 촬영하면 끝이다.

팀 프로젝트


* 어제는 거의 손도 못 댔는데, 오늘은 조금이나마 분석 결과다운 결과를 낼 수 있었다. 
* 다른 팀원들이 너무 잘 해서 따라가기 벅찼는데, 갑자기 쿼리 하나가 잘 풀려서 결과를 운 좋게 얻었다.
* 역시 결과 정리가 제일 어렵고 손이 많이 간다.
 시각화 툴은 도무지 시간 내에 배워서 완성할 수 없을 것 같아서 어쩔 수 없이 제일 만만한 구글 스프레드 시트를 활용했다.
 차트로 구현할 수 있는 한계가 있어서 차라리 엑셀 쓰고 싶었는데... 이러다 office 365 구독하는 거 아닌가. 
 그래도 엑셀에 의존하지 않고 하는 법을 배우려고 부트캠프에 온 것도 있으니까. 시간날 때 틈틈히 공부해야겠다.

학습 내용


* ROLLUP 함수(SQL)
    * 엑셀 피벗테이블에서 부분합을 구할 수 있는 것처럼, SQL으로도 구현할 수 있을지 찾아보다가 알게된 함수다.
    * GROUP BY 로 집계한 그룹과, 전체에 대한 부분합을 구할 수 있다.
    * 다만 집계된 소그룹에 이름을 부여하는 부분까지는 익히지 못했다... GROUPING 함수를 쓰면 된다는데 오류가 나서 거기까진 못했다. 

    ```
    SQL
    SELECT DISTINCT Sub_Category
    ,sum(Profit) sum_profit
    ,count(DISTINCT Product_ID) AS total_product_num
    FROM us
    WHERE discount <> 0
    GROUP BY 1 WITH ROLLUP 
    ```

* CROSS JOIN
    * 특정 값에 대해 전체 합계를 구해 그 비중을 계산하고 싶어서 GPT랑 대화 끝에 알아낸 JOIN
    * 아직 내가 쓰는 쿼리문으로는 오류가 잦아서, 나중에 다시 연습할 필요가 있다.
    ```
    SQL
    SELECT Category,
    Sub_Category,
       IF(Discount = 0,'regular','discount') sales_type,
    ROUND(SUM(Sales) / total_sales * 100, 2) AS sales_percentage,
    ROUND(sum(Profit)/sum(Sales) * 100, 2) AS Profit_rate,
    round(sum(quantity),0) AS sum_quantity 
    FROM us
    CROSS JOIN (
        SELECT SUM(Sales) AS total_sales FROM us
        ) AS total
    GROUP BY 1, 2, 3, total.total_sales
    ORDER BY 1, 2, 3 DESC ;
    ```

고찰 & 기타


* Canva를 처음 써봤다. 작업을 온라인에서 공유하면서 PPT를 만들 수 있다니! OT 때 TOME 이라는 플랫폼도 있다고 하셨다.
* 팀으로 데이터분석을 한다면 1.모두가 하나의 가설에 대해 검증한다 2.각자 다른 가설을 테스트한다. 둘 중에 어떻게 진행될까? 궁금

'내일배움캠프_데이터분석_2기 > TIL' 카테고리의 다른 글

[TIL] camp_day5_240418  (0) 2024.04.19
[TIL] camp_day4_240418  (0) 2024.04.18
[TIL] camp_day2_240416  (0) 2024.04.16
[TIL] camp_day1_240415  (0) 2024.04.15
[TIL] precamp_day8_240327  (0) 2024.03.27