@SQL 코드카타
34번 - 있었는데요 없었습니다
관리자의 실수로 일부 동물의 입양일이 잘못 입력. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성. 이때 결과는 보호 시작일이 빠른 순으로 조회.
select o.animal_id,
o.name
from animal_ins i inner join animal_outs o on i. animal_id=o.animal_id
where o.datetime < i.datetime
group by 1
order by i.datetime
INNER JOIN으로 해결
- 조회 : i.animal_id, i.name
- ANIMAL_ID로 INNER JOIN
- 조건 : o.datetime < i.datetime - 보호시작일보다 입양일이 더 빠를 때
- grioup by로 그룹 지정 >> 다른 사람들의 풀이법을 봤을때 굳이 지정하지 않아도 무방
- 순서 : order by i. datetime - 보호 시작일이 빠른 순으로 조회할 때
35번 - 오랜 기간 보호한 동물(2)
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
select i.animal_id,
i.name
from animal_ins i inner join animal_outs o on i.animal_id=o.animal_id
order by datediff(o.datetime, i.datetime) desc limit 2
INNER JOIN으로 해결
- 조회 : i.animal_id, i.name
- ANIMAL_ID로 INNER JOIN
- 순서 : order by datediff(o.datetime, i.datetime) desc limit 2 -보호 기간이 가장 길었던 동물 두 마리일 때, desc를 이용하여 보호기간이 긴 순으로 조회
새롭게 알게 된 것
dateiff(날짜1, 날짜2) 간단히 말하여 날짜1 - 날짜2
두 날짜간의 차이를 알아내고 싶을 때 사용하는 함수
dateiff를 몰랐었기 때문에 고민을 계속하다가 검색해서 도움을 받아 문제를 풀었다 다음에 이런 비슷한 문제가 나온다면 기억하고 있다가 잘 풀어야지 !
36번 - 보호소에서 중성화한 동물
보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.
select i.animal_id,
i.animal_type,
i.name
from animal)ins i inner join animal_outs o on i.animal_id=o.animal_id
where i.sex_upon_intake like '%Intact%' and o.sex_upon_outcome not like '%Intact%'
INNER JOIN으로 해결
- 조회 : i.animal_id, i.animal_type, i.name
- ANIMAL_ID로 INNER JOIN
- 조건 : where i.sex_upon_intake like '%Intact%' and o.sex_upon_outcome not like '%Intact%' - where 절 사용, 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물일 때 where 절의 like를 사용하여 조건 정립
초반에는 문제의 말 뜻을 이해를 잘 못했자만 좀만 더 이것저것 적으면서 생각해보니 내가 알고 있는 지식 선에서 where 절과 like를 이용하여 풀어야겠다고 생각했다.
이런 문제들은 전에도 말한 것 같지만 꼬아서 생각하거나 어렵게 생각하면 안될 것 같다. 나를 믿고 내가 알고 있는 지식 선에서 풀어보려고 먼저 시도 해보는 것이 좋을 것 같다. 어쨌거나 잘 풀었으니 됐다 ~~
'CODEKATA' 카테고리의 다른 글
20240617 코드카타 38번 39번 (0) | 2024.06.28 |
---|---|
20240625/ SQL 코드카타 37번 (0) | 2024.06.25 |
20240621(금) - SQL 알고리즘 33번 문제(상품 별 오프라인 매출 구하기) (0) | 2024.06.21 |
20240620 사전캠프(SQL 코드카타 32번-카테고리 별 도서 판매량 집계하기) (0) | 2024.06.20 |
20240619 사전캠프(SQL 코드카타 31번-오랜 기간 보호한 동물) (0) | 2024.06.19 |