4-7. 조건문 연습 문제 5번에 관한 질문
안녕하세요.
조건문 연습 문제 5번의 선생님께서 쓰신 정답에 관해 질문입니다.
select 안에, 포획 날짜를 표시하기 위해 원래 basic.trainer_pokemon 안에 존재하는 catch_datetime을 쓰셨는데, Asia/Seoul 시간대로 변경되지 않은 상태를 그대로 쓰신 이유가 있을까요?
SELECT
id,
trainer_id,
pokemon_id,
catch_datetime,
IF (DATE(catch_datetime, "Asia/Seoul") > "2023-01-01", "Recent", "Old") as recent_or_old
FROM
`basic.trainer_pokemon`
if 함수 내에서 수정한 날짜를 보여주기 위해, 똑같이 수정한 날짜를 썼는데, 문제 없을까요?
SELECT
id,
trainer_id,
pokemon_id,
DATE(catch_datetime, "Asia/Seoul") as corrected_catch_date,
IF (DATE(catch_datetime, "Asia/Seoul") > "2023-01-01", "Recent", "Old") as recent_or_old
FROM
`basic.trainer_pokemon`
미리 감사합니다.
답변 2
0
안녕하세요!
해당 문제에서 IF문을 통해 2023-01-01 기준으로 recent, old로 만들려고 한 것이고 그 이후에 데이터를 어떻게 사용하는지에 따라 어떻게 접근할지가 달라질 것 같네요.
5번 문제는 IF 문 안에 DATE 함수를 넣을 수 있고, DATE 함수 결과를 받아 조건문을 사용하는 것을 알려주기 위해 문제를 만들었습니다. 만약 문제에서 추가적으로 catch_datetime의 조건에 따른 분기가 존재한다면 변경하는 것도 좋은 선택일 것 같네요.
결론적으로 해당 문제에서는 크게 중요하지 않은 부분이지만, catch_datetime을 사용해서 WHERE 절에서 조건을 건다거나 한다면 DATETIME(catch_datetime, 'Asia/Seoul')로 해서 바꾸는 것이 더 좋을수도 있고 지금 작성해주신 쿼리도 문제가 되지 않습니다. 문제의 의도는 "조건문에 익숙해지는 것"이였다고 생각해주시면 좋을 것 같습니다.
쿼리가 이게 맞을까요? 저게 맞을까요? 라는 질문에 대한 생각을 추가적으로 말씀드리면 목적에 맞고, 논리적으로 타당하다면 다양한 방식의 쿼리가 나올 수 있습니다. 쿼리의 결과 데이터를 어떻게 활용하는가?라는 관점으로 생각해보셔도 좋을 것 같네요
vs code
0
48
2
수업자료 다운
0
46
2
쿼리 화면 문의
0
70
2
4-5. 3번 문제 질
0
64
2
JOIN 1번 문제
1
73
2
battle 테이블 생성 시 생성 오류
0
68
1
5-6. 4번 문제 WHERE 조건의 위치 문의
0
64
2
5-6. 연습문제 4번, type2에 대해서는 고려하지 않아도 될까요?
1
68
2
battle table 오류
0
68
2
location IS NOT NULL 을 굳이 안 써도 되지 않나요?
0
61
2
12강 집계 함수
0
48
1
2-6. 연습 문제 1~3번
0
49
1
안녕하세요! 11번 문제 query문에 관해 질문드립니다
0
49
1
2-6 #2 WHERE vs. HAVING절 사용 여부 차이
0
65
1
섹션 별 퀴즈
0
64
1
espanso 설치 완료 후 프로그램 실행 문제
0
102
2
Syntax에러
0
81
2
4-5. 1번 문제 TIMESTAMP 관련 질문
0
87
2
시각화 도구 사용
0
109
2
11번 문제 GROUP BY 사용하는 이유
0
98
1
big query 쿼리 결과 컬럼 폭
0
107
3
battle 스키마 조건 복사 파일이 열리지 않아요.
0
128
1
6-5 데이터 검증 결과 예시문제
0
78
2
battle 스키마 조건 복사붙여넣기용 자료
0
113
2





