like '%%'이용해서 풀어줬다 !
별다른 어려움 없던 문제
이 문제는 시간이 오래걸릴 것 같아, 다음에 풀어보려고 한다.
skip
- CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해주세요.
SELECT s.car_id,
case when ( s.start_Date<'2022-10-16' and s.end_date >= '2022-10-16') then '대여중'
else '대여 가능'
end 'AVAILABILITY'
from (select car_id, date_format(end_date,'%Y-%m-%d') as 'end_date',
date_format(start_date,'%Y-%m-%d') as 'start_date'
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
group by car_id) s
order by car_id desc
틀린이유
:
GROUP BY
는 특정 칼럼의 특정 값을 기준으로 어떠한 집계 결과를 얻기 위해 주로 사용!
그래서 GROUP BY
로 지정한 후에 집계함수(MAX
, MIN
, COUNT
등) 없이 단순히 컬럼을 선택하면, 그룹 내에서 어떤 row가 선택될지 보장할 수 없다. (SQL 표준에서 "정의되지 않은 동작"으로 규정되어 있음)
그래서 동일한 CAR_ID
중에 하나만 선택하거나 집계할 수 있도록 쿼리를 작성해주어야 한다
해결방법
: max 또는 in 사용
🔻수정쿼리 - max
사용
select car_id,
Max(case when ('2022-10-16' between start_date and end_date) then '대여중'
else '대여 가능'
end) as 'AVAILABILITY'
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
group by 1
order by 1 desc
in
을 사용한다면?
select car_id,
case when car_id in (select car_id
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
where '2022-10-16' between start_date and end_date )
then '대여중'
else '대여 가능'
end as 'AVAILABILITY'
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
group by 1
order by 1 desc
(튜터님 스윽 훑고 따라해봤다..!)
오늘의 아티클
데이터 속 거짓말 발견하기
기준선이 0인지 확인하기
: 막대그래프는 그 높이가 바로 변수의 값으로 인식되기 때문에 기준선을 ‘0’으로 두는 것이 매우 중요하다.
기준선이 0이 아닐 때, 변화량이 왜곡될 정도로 두드러질 수있다.
Y축 살펴보기
: 왼쪽 그래프를 보면 물결이 있는데, 이는 y축이 두개인 셈이다.
따라서 지방 공항의 당기순이익 적자가 과장되어 표현되었다.
y=o을 기준으로 보는 것 중요 !
✅ 연속적인 변화를 보여주는 것이 목적이기 때문에, 특정한 경우를 제외하고는 기준선을 ‘0’으로 두지 않는다. 하지만 스케일을 사용하는데 주의해야한다.
✅ 두 개의 다른 Y축을 가지는 그래프를 겹쳐 그리는 경우, 스케일에 따라 완전히 다른 해석이 나올 수 있다.
✅ 두개의 Y축을 하나의 그래픽에서 사용하는 것은 사실의 왜곡이 클 수 있는 만큼 반드시 지양해야한다.
2014년 최근 3분기 판매량은 감소했지만, 누적그래프를 이용하여 판매량이 지속해서 상승하는 듯한 인상을 주고 있다. → 이러한 점을 주의해야한다.
전체의 합이 100%인지를 확인하자.
이렇게 전체 합이 100%를 훨씬 넘는 데이터는 파이차트에 절대로 쓰여서는 안되는 데이터다.
3D는 피하자
각도에 따라 보이는 면적의 크기가 매우 다르다.
: 트럼프의 대선 승리 지도
1.득표 마감 전, 한 시점을 캡처한 것으로 데이터 출처가 잘못됨
2.지도 같은 경우에는, 지역이 넓어도 인구 수가 적은 곳이 많기 때문에 이는 적절한 시각화 방법이 아니다.
이미지 렌더링을 위해 산불의 규모가 조금 과장되어 표현된 호주 산불 시각화 사례.
✅ 시각화가 어떠한 배경에서 어떤 데이터를 이용해서 만들어졌는지 꼭 살펴볼 필요가 있다.
.
.
실제로 통계학 수업을 들었을 때, 되게 발표를 잘한 팀이 있었는데 그 팀은 파이차트를 사용했었다. 하지만 수업중에 교수님은 파이차트를 최대한 지양하라고 말씀하신 적이 있었다. 단순한 설문 결과를 파이차트로 표현한 것이기에 언뜻 보면 왜곡된 내용이 없어보이는데, 교수님은 그 팀에게 B를 주셨다. 이렇게 엄격했던 교수님 덕분에 그 이후로는 파이차트를 유심히 보는, 파이차트를 볼때마다 엄격해지고싶은(?) 습관이 생겼었다. 사실 막대그래프랑 선그래프, 지도 시각화가 왜곡의 정도가 너무 충격적이었어서 (그것도 뉴스와 언론의 다분한 사례였다는 점과 더불어..) 이번 아티클에서도 얻은 교훈이 큰 것 같다. 앞으로 진행할 프로젝트, 포트폴리오, 면접자료에 쓰일 시각화 자료를 신중히 검토해야겠다.
🔴내가 겪었던 오류
Can't parse numeric value [remove_from_cart] using formatter
를 시작으로, 정말 많았다.
구글링을 해서 나온 방법대로 해봐도, 슬랙 질문들을 참고해봐도 난 해결이 안됐다ㅜㅜ
더 이상 지체할 수 없어서, 디엠으로 튜터님께 양해를 구한 뒤, 대뜸 튜터실로 찾아갔다. (그 이후로 3번을 들락날락했다...)
❌파일을 한번에 불러놓고, 개별적으로 configure 수정을 해주지 않아서
❌id컬럼 같이 문자 컬럼은 VARCHAR
또는 TEXT
로, INTEGER
이 숫자가 크다면 BIGINT
로
❌PC에서 다운로드 경로대로 따라가서, 파일에 커서를 대고 우클릭 하면 편집
이라고 뜬다. 그걸 클릭하면 메모장이 나오고 우측 하단에 인코딩 형태를 확인할 수 있다. => UTF-8
로 바꿔주었다.
❌이전 테이블을 삭제하지 않아서(truncate로 되는 건 줄 알았는데, 이건 값만 지우는 거고 테이블은 수동으로 지워주고 import해야한다.)
=> 파일 하나 해보고, 정상 작동됐을 때 한꺼번에 불러옴.
.
.
🔻최종적으로 이 타입으로 불러와줬다.
이렇게 가져온 데이터를 가지고...!
🔻
🔻
오늘 얼마만큼의 팀스터디를 했는지는 아래 사진 한장으로 설명할 수 있을 것 같다.
작성한 코드들, 사용할 데이터 관련 분석은 프로젝트 내용 이후 wil에서 작성하거나 금요일 til에 작성해야겠다. 여기서 자연스럽게 오늘 느낀점+회고로 이어지면 될 것 같다.
우선 내가 오전 내내.. 귀찮게 해드린 튜터님은 항상 침착하셨다.. 정말로 침착하셨다.. (나혼자만 불안이) 부트캠프가 끝날 때까지 나도 침착하려고 노력해야지
이번주는 코드카타 문제를 많이 풀거나 개인 스터디를 많이 할 수 없을 것 같다. 어쩔 수 없는 건 아니고, 팀스터디도 재밌고 이왕 발표 해야할거 잘하고싶기 때문이다.
하지만.. 의욕에 넘처 열심히 하고 있지만... 쿼리에 100%자신 있고 객관적 자료라는 것에 확신을 두지는 못한다. 물론 객관성 확보와 정확한 데이터 추출에 신경쓸 것이지만, 우리 팀은 피드백을 달게 받을 것이다.
(이렇게나 많은 데이터 분석은 처음이고,
우리가 한 실험에 대해 공짜로 피드백을 기회가 또 언제있겠어..)
내일은 심화적인 분석 위주로 진행하고, 스토리보드랑 결론을 구체화할 예정이다.
9시가 지나도, 팀원 모두 캠&마이크도 끄지 않고 작업하고 있었다.
그리고 사실, 전까지만 해도 개인플레이 느낌이 강해서 걱정도 했는데,
오늘은 누가 시키지도 않았는데,
끝나고 나서 20분이나 서로 피드백+소감을 나눌 정도로 팀 다워진 느낌이었다.
개개인마다 공부 진도도 다르고 이전 실무 경험도 다른데, 합이 잘 맞는게 너무 신기했다. 잘 맞춰가려고 모두가 노력한거겠지.
내일은 더 노력해야지.여러모로.🤗