웅진 STARTERS 부트캠프

6주 4일차 TIL 정리

WoodenStella 2023. 3. 16. 20:17

6주 4일차에는 Tableau 프로젝트 기반 강의의 네 번째 수업을 진행했다.

airbnb 과제에 대한 재피드백과 날짜함수에 대한 간단한 수업을 진행한 후 프로젝트를 수정 및 대시보드 설명을 작성하는 과제를 수행했다.


DATE 함수 연습


1. DATEADD(date_part, interval, date)
date 에 date_part 단위의 interval을 더함

DATEADD('day', 19, #2022-01-03#)

 

2. DATEDIFF(date_part, date1, date2, [start_of_week])
date1(시작일)과 date2(종료일) 사이의 간격을 date_part 단위로 구함

이때 [start_of_week]는 선택사항이며, 'sunday' 로 지정 시, 일요일이 주의 첫번째 요일로 고려함

DATEDIFF('day', #2023-01-01#, #2023-01-22#)

 

 

3. DATENAME(date_part, date, [start_of_week])
date의 date_part를 문자열로 반환

DATENAME('month', #2023-01-22#)


4. DATEPART(date_part,date,[start_of_week]
date의 date_part를 정수형으로 반환

DATEPART('month', #2023–01–22#)

 

5. DATEPARSE(date_format, [date_string])
date_string(문자열)을 date_format의 형태(날짜형)로 반환

DATEPARSE('MM-dd-yyyy', '09-20-2021')


6. DATERUNC(date_part, date, [start_of_week])
date 기준 date가 속한 date-part 의 첫째 날 반환

DATETRUNC( 'month', #2023-01-22# )

DATETRUNC( 'quarter', #2023-06-14# )


7. ISDATE(string)
string(문자열)이 유효한 날짜면 true 반환

ISDATE('August 4,2021')


8. MAKETIME(hour, minute, second)
시,분,초로 구성된 날짜값 반환

MAKETIME(16,24,00) = #16:24:00#


9. MAX(expr1, expr2)
a와 b의 최대값 반환(동일한 유형이어야 함, 둘 중 하나라도 Null 이면 Null 반환)

MAX(#2021-01-22#,#2022-01-22#)


10. MIN(expr1, expr2)
a와 b의 최소값 반환(동일한 유형이어야 함, 둘 중 하나라도 Null 이면 Null 반환)

MIN(#2021-01-22#,#2022-01-22#)


11. YEAR(date)

주어진 날짜를 연의 정수로 변환

YEAR(#2022-01-22#)


12. MONTH(date)
주어진 날짜를 월의 정수로 반환

MONTH(#2022-01-22#)


13. WEEK(date)
date의 날짜 주를 정수로 반환

WEEK(#2022-01-22#)


14. DAY(date)
date의 날짜 일을 정수로 반환

DAY(#2022-01-22#)


15. QUARTER(date)
date의 분기를 정수로 반환

QUARTER(#2022-01-22#)


16. TODAY()
현재 날짜 반환

DAY()

 


프로젝트 피드백  ※


1. '지역별 가격 중앙값' 필드가 필터로 사용되는 것에 대한 직관성이 떨어진다. 

2. 연도 단위 필터링이 규모가 너무 큰 감이 있다. 이러한 정보는 연도로 판단하기는 힘들 것 같으니, 분기별 필터링이 더 옳은 선택일 것 같다.

3. 어렵거나 배경지식 등으로 활용되는 그래프는 캡쳐해서 보고서에 미리 설명하고 넘어가야 한다.


※ 피드백 적용 결과 ※


1. 시선이 처음으로 접하게 되는 좌상단에 분기와 지역필터가 가능함을 언급

2. 캡션을 통해 간략한 기능과 표현하고자 하는 바에 대한 설명 삽입

3. '가입연도별 리뷰가 없는 숙소 비율' 그래프를 각 연도에 대한 비율로 정정하여 삽입(정보를 더 알맞은 형태로 표현하기 위함)

4. 연도별 필터를 삭제하고, 분기별 필터로 적용.

 


※ Join Union ※


UNION: 데이터셋을 가져다가 쌓는 것!
  -데이터셋 두개가 컬럼 개수가 똑같아야 union 가능
eg)
  db1 : 1~10 column, 100 row
  db2: 1~10 column, 120 row

  union db1 db2     →     1~10 columnm, 220 row


  eg) 똑같은 컬럼을 가지고 있지만 연도만 다른 것


JOIN: 가장 많이 쓰는 것은 Left Join

 

데이터 양이 너무 커서 조인하면 다운될 경우
  - 각각 따로 load 한 다음 혼합관계편집으로 엮어줄것.
  - 추출을 다 했음에도 다시 추출하기 때문에, 렉이 많이 걸린다.
    (정말 필요한 경우에만 쓰는 게 좋다)

 

 

* SQL 팁
select ~~(1~9까지 있을 때)
from ~~
group by 1,2,3,4,5,6,7,8,9
     →이런식으로 하면 데이터의 중복 사라짐