회고
일간 목표
- 데이터 시각화 4주차 강의
- SQL 코드카타 72 ~ 74번
- 아티클
- 라이브 세션
- 팀 데이터 분석 자료
- 점프투 파이썬 2장 읽는 중
목요일이 되어서 그런지 오늘은 어제보다는 지친 하루인 것 같다.
어제는 컨디션이 꽤나 좋았는데, 오늘은 오후쯤 되니 눈이 뻑뻑해서, 눈을 자주 감고 있었다.
그래도 좋은 점은 판다스는 오류가 많이 뜨지 않고, 내가 보고 싶은 결과들을 바로 시각화해서 볼 수 있어서 비교적 재밌게 수업을 진행하고 있다. 오늘은 어제보다 실시간 세션 시간에 다룬 내용들이 많았는데,
데이터 필터, 정렬하기, 변경하는 법, 결측값을 처리하는 방법에 대해 배울 수 있었다.
제공된 강의로 데이터 시각화 4주차까지 완강해서 matplotlib으로 그래프 그리는 법까지 실습을 진행했는데, 이 내용을 가지고 태블로로 좀 더 정교화된 시각화를 한다면 더욱 재밌을 것 같다.
아티클을 읽으며 느끼는 것들은 대시보드에도 디자인의 요소가 중요한 듯 싶고, 실제로 디자이너 분들이 작성한 아티클들도 많은 것 같다.
새로운 학문을 배우면서 내가 작아지는 듯한 느낌을 받을 때가 있었는데, 오늘 드디어 한 학기 동안 진행한 영어 통번역 수업의 수료증이 집으로 도착했다. 15주 동안 매주 학교 가고 숙제를 해내느라 고생했던 나날들이 떠오르면서 내가 또 해냈구나 라는 뿌듯함이 들었다. 부트캠프와 병행하는 요 몇 주간은 금요일에 거의 밤을 새야해서 7일 간 쉬는 날이 없어서 체력적으로 힘들었다.
이제 부캠에 잘 집중하고 다음주에 있을 2024년 마지막 토익시험을 틈틈히 준비해야겠다! 이번에는 목표 점수 만듭시다!
1. SQL 코드카타
문제1. 조건에 부합하는 중고거래 댓글 조회하기
USED_GOODS_BOARD와 USED_GOODS_REPLY 두 개의 테이블이 주어졌고, 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 찾아주어야 함.
✅풀이방법
# 서로 다른 두 개의 테이블을 연결해야 하므로 BOARD_ID를 기준으로 JOIN을 진행해야 함.
BOARD_ID를 고유값으로 잡아서 INNER JOIN했어야 함. -> 그런데 나는 WRITER_ID를 기준으로 찾아주었음
# 조건: '2022-10'일자만 출력해야 하므로 와일드카드를 이용하여, 조건절을 달아줌
SELECT B.TITLE,
B.BOARD_ID,
R.REPLY_ID,
R.WRITER_ID,
R.CONTENTS,
DATE_FORMAT(R.CREATED_DATE,'%Y-%m-%d') AS CREATED_DATE
FROM USED_GOODS_BOARD AS B
JOIN USED_GOODS_REPLY AS R ON B.BOARD_ID = R.BOARD_ID
WHERE B.CREATED_DATE LIKE ('2022-10%')
ORDER BY R.CREATED_DATE ASC, B.TITLE ASC;
문제2. 입양 시각 구하기 (2) ⭐⭐⭐
언뜻보면 간단해보이지만, SET함수를 사용하여 변수를 선언해주어야 한다. SET함수 없이 구하면, 입양 시간에 없는 시간대는 출력이 안되기 때문.
✅풀이방법
- 변수를 선언하는 명령어 SET을 이용하여 0~23까지 생성하는 주테이블을 만든 후에 문제를 풀어준다. (문제에서 요구하는 것은 0시~23시까지 모두 출력하는 것인데, 기록된 입양 시간들에는 없는 시간대들이 있기 때문에 GROUP BY를 해주면 없는 시간대들은 잡히지 않는다.)
- SET 옆에 변수명과 초기값을 설정할 수 있다. SET @hour := -1;은 사용자 지정 변수 hour을 선언한 것으로, 초기값은 -1로 1씩 증가시켜 0시부터 출력된다.
- SELECT (@hour := @hour +1) 은 @hour의 값에 1씩 증가시키면서 SELECT문 전체를 실행하게 된다.
- WHERE @hour < 23 역시 +1되므로 24시까지 나타낸다.
- COUNT는 0~23시 중에서 HOUR(DATETIME)과 같은 것만 COUNT한다.
🖇️ 참고자료
https://techblog-history-younghunjo1.tistory.com/146
[SQL] MySQL - SET 과 서브쿼리 사용하기
🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 프로그래머스임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 프로그래머스 사이트를 방문해보세요! 이번 포스팅에서 소개할 SQL 구문은
techblog-history-younghunjo1.tistory.com
SET @HOUR = -1;
SELECT (@HOUR := @HOUR +1) AS HOUR,
(SELECT COUNT(HOUR(DATETIME))
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME)=@HOUR) AS COUNT
FROM ANIMAL_OUTS
WHERE @HOUR < 23;
문제3. 특정 기간 동안 대여가능한 자동차들의 대여비용 구하기 ⭐⭐⭐
CAR_RENTAL_COMPANY_CAR, CAR_RENTAL_COMPANY_RENTAL_HISTORY, CAR_RENTAL_COMPANY_DISCOUNT_PLAN 총 세 개의 테이블이 나온다.
✅풀이방법
SELECT C.CAR_ID,
C.CAR_TYPE,
ROUND(C.DAILY_FEE*30*(100-DP.DISCOUNT_RATE)/100) AS FEE
FROM CAR_RENTAL_COMPANY_CAR AS C join CAR_RENTAL_COMPANY_RENTAL_HISTORY HI
ON C.CAR_ID = C.CAR_ID
JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN DP
ON C.CAR_TYPE = DP.CAR_TYPE
WHERE C.CAR_ID NOT IN (
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE END_DATE > '2022-11-01' AND START_DATE < '2022-12-01'
) AND DP.DURATION_TYPE='30일 이상'
AND C.CAR_TYPE IN ('세단', 'SUV')
GROUP BY C.CAR_ID
HAVING FEE>=500000 AND FEE<2000000
ORDER BY FEE DESC, CAR_TYPE, CAR_ID DESC
2. 아티클 분석
[번역] 더 나은 대시보드 디자인을 위한 10개명: 10 rules for better dashboard design
실용적 가이드 (Practical Guide)
medium.com
오늘 진행한 아티클은 좋은 대시보드 디자인을 만드는 10개명에 대한 내용이었다.
그 중 나에게 가장 인상 깊었던 것은 대시보드는 가장 마지막에 만들어야 한다는 것이었다. 대시보드는 일종의 미리보기이자, 모든 데이터의 핵심 요약본이기 때문에 마지막에 디자인하지 않으면 다른 페이지를 디자인하는 도중 계속 대시보드를 업데이트하기 위해 돌아와야 하는 사태가 생긴다. 그리고 어느 정도 뷰가 디자인 되었을 때 대시보드에 넣을 수 있는 요소들이 늘어나기 때문에 훨씬 유용한 정보를 담을 수 있다.
대시보드 디자인을 위한 10개명
1. 대시보드의 목적을 정의
2. 정확한 데이터 시각화를 선택함
- 어떤 차트들은 사용할 필요가 없는 차트들도 있음, 3D차트 같은 것들
3. 명확하고 일정한 네이밍과 날짜 포멧, 그리고 큰 값들의 축소화
4. 레이아웃과 흐름을 우선시로 정의
5. 일관성있는 형태의 구성요소를 사용
6. 빈 공간도 중요한 역할을 함
7. 정보를 숨기지 말고 인터렉션에 의존하지 않는다
- 많은 내용을 보여주는 것보다는 요약해서 핵심정보만 보이게 하는 것이 중요하다.
8. 주문제작보다는 개인화
9 테이블이나 리스트를 적용할 때, 인터랙티브한지 확인하고 정확히 나열되어 있는지 확인
10. 대시보드는 마지막에 디자인한다.
⁉️모르는 용어⁉️
1. Operational Dashboard: 실시간으로 정보가 달라지는 다루는 업무를 사용자들에게 빠르게 중요한 정보를 전달하는 것이다. 사용자들에게 데이터 편차를 빠르고 정확하게 보여주고 현재 리소스와 상태를 알려주는 것이 목적이다. 시각적으로 보조 기능을 보여주며 사용자들이 빠르고 능동적이고 효율적으로 만드는 디지털 컨트롤 룸이다.
2. Analytical Dashboard: 사용자들이 데이터를 더 쉽게 이해하고, 트렌드를 분석하며 의사결정을 내리게 만드는 것이 목표
'데이터분석캠프 TIL' 카테고리의 다른 글
241220 TIL 데이터분석과정 (1) | 2024.12.26 |
---|---|
241224 TIL 데이터분석과정 (1) | 2024.12.24 |
241218 TIL 데이터 분석과정 - SQL 코드카타(저자 별 카테고리 별 매출액 집계하기, 그룹별 조건에 맞는 식당 목록 출력하기, 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기, 오프라인/온라인 판매 데이터 통합하기) (5) | 2024.12.18 |
241216 TIL (SQL 코드카타 - 자동차 평균 대여기간 구하기, 우유와 요거트가 담긴 장바구니) (0) | 2024.12.16 |
241210 TIL 파이썬 개념 정리(변수, 자료형, 리스트 문법) (2) | 2024.12.10 |