
안녕하세요
오늘은 ... 제가 몸이 안 좋아서 컨디션이 상당히 안 좋네요 .......
🤢
그럼에도 불구하고 할 수 있는 데까지 해보겠습니다 !!
🖌️ 63번 문제 - 자동차 평균 대여기간 구하기
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서
평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력해주세요.
평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.
우선 문제를 보시면
select로 출력할 건
자동차 id와 새로 만든 AVERAGE_DURATION 컬럼 두 개만 출력해주면 되는데요
새로운 컬럼을 만들기 전에 데이터 평균을 구하고 소수점 반올림을 해야겠다는 생각이 드네요 !!

위는 제가 처음 작성했던 쿼리인데요
하나씩 풀어서 설명해드릴게요
SELECT CAR_ID, >> 자동차 id 출력
ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1), 2) AS AVERAGE_DURATION
>> DATEDIFF를 통해 대여종료일-대여시작일 날짜 계산해주기 + 평균 계산까지
>> ROUND 함수 이용해서 소수점 반올림 후 별칭 저장 하고 컬럼 출력
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY 1 >> 자동차 id 묶어주기
HAVING AVERAGE_DURATION >= 7 >> 평균 구한 것에서 7일 이상 출력
ORDER BY 2 DESC, 1 DESC >> 대여기간 기준 내림차순 후 자동차 id 내림차순 정렬
오늘부터 코드카타 복잡도가 좀 상승된 거 같은데 ,,
쿼리가 많이 길어졌네요 ,,,,
AVG(DATEDIFF(END_DATE, START_DATE)+1)
여기서 왜 +1이 됐냐면요
20240508 - 20240508 = 0
당일대여 당일반납은 계산으로 따지면 계산이 집계가 안되기 때문에
1일 사용한 걸로 치기 위해서는 당연히 +1로 꼭 표기해야합니다 !!!!
그치만,,, 제가 위에 작성한 쿼리는 지문을 잘못보고
두번째 자리만 보고 2라고 썼는데
두번째 자리에서 반올림이기 때문에 소수점 첫번째 자리까지 반올림을 해줘야 합니다 !!!!!

이렇게 써주시면 정답처리 완 👍
각에서 0도 초과 90도 미만은 예각,
90도는 직각,
90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다.
각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.
사실 처음 문제 봤을 때 감이 안와서 몬솔이지 했는데 ㅎㅎ,,
딱봐도 조건문 이네요 !!
def solution(angle):
if angle < 90:
answer = 1
>> 90 미만 = 예각 = 1
elif angle == 90:
answer = 2
>> 90 = 직각 = 2
elif 90 < angle < 180:
answer = 3
>> 90 초과 180 미만 = 둔각 = 3
else:
answer=4
>> 180(그외로 else 처리) = 평각 = 4
return answer
이 문제는 들여쓰기 맞춰서 작성해주셔야 거르는 거 없이 추출됩니다 !!
주의하셔서 코드 작성하시면 됩니다 ㅎㅎ
이것도 정답처리 완 👍
내일부턴 데이터 전처리+시각화 세션이 시작될 거라
튜터님께서 파이썬 총정리해주는 시간을 가졌습니다 !!

사실 이건 처음보는 리스트 형태라
간단하지만 나중에 도움될 거 같아서 가져왔어요 ㅎㅎ
데이터 안에 따로 따로 구분해야될 값들이 있다면
인덱싱으로 시작값을 생략하고 맨 끝 전까지 불러오거나
남은 맨 끝 값은 따로 출력하면
두 다른 형식을 구분되게 출력할 수 있는 걸 알았습니다 ㅎㅎ

이 예시는 제가 참 들여쓰기에 대해 멀었다라고 생각된 문제였습니다...
첫 문제보고 1,2만 되는 거 아닌가...?
했는데
조건문에서 참인 경우만 출력할 시
if - elif - else 순으로 출력하기 때문에
if가 참이면 elif나 else는 참이더라도 당연히 제외되는데
맨 아래 else print4는 오히려 들여쓰기가 잘못된 거 아닌가 했는데
print3은 else에 들여쓰기가 잘되어있고
print4의 경우는 들여쓰기기 자체가 안되어 있기 때문에
그냥 .. 아예 독립적인 코드가 된 겁니다....
그냥 .. 쟤는 조건문도 아니고 걍 지혼자 프린트 된 겁니다
들여쓰기가 안돼있기 때문에
그냥 .. 지 할일을 하고 있었던 거에요 ,,,,,
네 ,,,
그래서 제가 숫자대신 말도 안되는 문자로 입력해도
아주 출력이 잘됐네요
오늘 하루 컨디션이 정말 좋지 않았지만
그렇기 때문에 내일은 더 열심히 해보겠습니다 !!
내일 봬요 😇🌟