Coding History

2024. 07. 12 SQL 문제풀이

BlackBirdIT 2024. 7. 12. 10:03

59047 번

-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = 'Dog' AND NAME LIKE '%EL%'
ORDER BY NAME;

59409번

SELECT ANIMAL_ID, NAME,
       CASE 
           WHEN SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O'
           ELSE 'X'
       END AS 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

이건 배운적이 없어서 이것저것 시도해보고 검색도 해봤는데 모르겠더라. 그래서 그냥 챗지피티 돌렸다. 'CASE WHEN ... THEN ... ELSE ... END AS' 는 처음보는 쿼리였다. 이것도 기억해두면 쓸 데가 있겠지

59411번

SELECT I.ANIMAL_ID, O.NAME, I.DATETIME, O.DATETIME
FROM ANIMAL_INS AS I
INNER JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE DATEDIFF(I.DATETIME,O.DATETIME)
ORDER BY I.DATETIME;

-----------------------------------------------------
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS AS I
INNER JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID 
ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC
LIMIT 2;

위에가 내가 풀어보려고 DATEDIFF을 알아내서 뭔가 해보려고 시도한거고 이것저것 해 보다가 안되서 검색해서 해결한게 아래 것이다. 조건이다 보니까 계속 WHERE 절에 뭔가 쓰려고 해서 잘 안풀렸던 것 같다. ORDER BY에 DATEDIFF 함수를 넣어서 애초에 저 순서대로 정렬을 시키면 되는 문제였다.