Daily plan
🌞오전
- 8시~ SQL 코드카타 4문제 (lv5 끝내기)
- 10시 QCC
- 11시 30분 QCC 해설
🔥 오후
- 데이터전처리&시각화 강의 3주차
- 파이썬 개인과제 8번
- 파이썬 라이브세션 내용 정리 (복습)
🌝 저녁
- 데일리 스크럼 + TIL 제출
이건 내 지식으로 풀 수 없는 문제였다,, 덕분에 새로운 문법들을 많이 배웠음^^;;
WITH RECURSIVE HOUR_TABLE AS(
SELECT 0 HOUR
UNION ALL
SELECT HOUR+1
FROM HOUR_TABLE
WHERE HOUR<23
)
SELECT B.HOUR, COUNT(DISTINCT ANIMAL_ID) COUNT
FROM HOUR_TABLE B LEFT JOIN ANIMAL_OUTS A ON B.HOUR = HOUR(A.DATETIME)
GROUP BY B.HOUR
ORDER BY B.HOUR
SQL에도 재귀식을 사용할 수 있는 줄 몰랐다.
WITH구문에서 0부터 23까지 재귀식을 이용하여 +1해주며 새로운 테이블을 만들고,
이 새로운 테이블을 기준으로 ANIMAL_OUTS 테이블과 조인해주었다.
SET @HOUR = -1;
SELECT @HOUR := @HOUR+1 AS HOUR,
(SELECT COUNT(*)
FROM ANIMAL_OUTS
WHERE @HOUR = HOUR(DATETIME)) AS COUNT
FROM ANIMAL_OUTS
WHERE @HOUR<23
SQL에서 SET은 변수를 선언하거나 변수에 값을 할당하는 용도로 사용된다고 한다.
변수를 사용하니까 테이블을 새로 만드는 것보다 훨씬 간편한 거 같음!
SELECT HOUR, COUNT(DATETIME) AS COUNT
FROM (SELECT (ROW_NUMBER() OVER() -1) AS HOUR
FROM ANIMAL_OUTS
LIMIT 24) A
LEFT JOIN ANIMAL_OUTS B ON A.HOUR = HOUR(B.DATETIME)
GROUP BY HOUR
ORDER BY HOUR
한문제를 틀렸다...! 속상ㅜㅜ
2번 문제를 틀렸는데 왜 틀렸는지 확인해봐야겠다.
select count(*) country_count
from country
where gnp < gnpold
and population >= 10000000
and gnpold<>0
and gnpold is not null
select district,
round(sum(population)/count(name),0) average_population
from city
group by district
having count(name)>=3
order by average_population desc
다시 보니까 어이없음.. 나 왜 avg함수 안쓰고 평균 저딴식으로 계산했지????
시험보는 동안 머리가 어떻게 되었나봄..
select district,
round(avg(population),0) average_population
from city
group by district
having count(id)>=3
order by average_population desc
이렇게 하면 훨씬 간단한 것을.... 바보다 바보
select city_name, country_name, continent, population
from (select ct.name as city_name,
c.name as country_name,
c.continent,
ct.population,
rank() over(partition by continent order by ct.population desc) as rank_pop
from city ct left join country c on c.code = ct.countrycode) a
where rank_pop=1
order by population desc
시험보다가 RANK()함수 문법을 어떻게 썼는지 기억이 안나서 애먹었다,,
윈도우 함수 연습 많이 해봐야 할듯ㅜ.ㅜ
row_number() over (partition by c.continent order by ct.population desc) as rank_pop
튜터님 모법답안에서는 위와 같이 row_number함수를 사용하셨다.

4주차 끝난 기념으로 위장에 기름칠하기
벌써 4주차가 끝났다니...!
4주차나 잘 버텨낸 기념으로 오늘 하루는 끝장나게 쉬어준 것 같다...^^;;
계획한 일들을 다 못했지만 이건 주말의 나에게 넘겨주기로.. 허허
오늘 ADsP 가채점 결과가 나왔는데 의외로 합격했다. 말 안됨..
공부 진짜 안하고 가서 기대 전혀 안하고 있었는데 간신히 턱걸이로 합격했다,,
이게 왜 되지??????
아마 그날 찍신이 강림했나보다
사실 바로 다음 시험 원서접수 하려고 날짜 체크하고 있었는데 넘 기분이 좋다..ㅋㅋㅋ
감사합니다,, 앞으로 공부 열심히 할게요ㅜ.ㅜ