전체 글

Garbage in, garbage out
알고리즘

[SQL]프로그래머스 Lv.4 보호소에서 중성화한 동물

✅ 코드 SELECT I.ANIMAL_ID , I.ANIMAL_TYPE , I.NAME FROM ANIMAL_INS AS I INNER JOIN ANIMAL_OUTS AS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.SEX_UPON_INTAKE LIKE 'Intact%' AND O.SEX_UPON_OUTCOME NOT LIKE 'Intact%' ORDER BY ANIMAL_ID 간단한 조인 문제였습니다.

알고리즘

[SQL]프로그래머스 Lv.3 오랜 기간 보호한 동물(2)

✅ 코드 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 함수를 사용해서 정렬 기준을 세웠습니다.

알고리즘

[SQL]프로그래머스 Lv.3 있었는데요 없었습니다

✅ 코드 SELECT I.ANIMAL_ID , I.NAME FROM ANIMAL_INS AS I INNER JOIN ANIMAL_OUTS AS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.DATETIME > O.DATETIME ORDER BY I.DATETIME; INNER JOIN을 수행한 이유는 보호 시작일과 입양일 정보를 모두 갖고 있는 동물들이 대상이기 때문입니다.

알고리즘

[SQL]프로그래머스 Lv.3 오랜 기간 보호한 동물(1)

✅ 코드1 SELECT NAME, DATETIME FROM ANIMAL_INS WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS) ORDER BY DATETIME LIMIT 3; 다중행 서브쿼리를 사용한 풀이입니다. ✅ 코드2 SELECT I.NAME , I.DATETIME FROM ANIMAL_INS AS I LEFT JOIN ANIMAL_OUTS AS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE O.ANIMAL_ID IS NULL ORDER BY I.DATETIME LIMIT 3; LEFT JOIN을 사용한 풀이입니다.

알고리즘

[SQL]프로그래머스 Lv.2 카테고리별 상품 개수 구하기

✅ 코드 SELECT SUBSTR(PRODUCT_CODE, 1, 2) AS CATEGORY , COUNT(DISTINCT PRODUCT_ID) FROM PRODUCT GROUP BY CATEGORY ORDER BY CATEGORY; 🔎 참고 컬럼의 별칭(ALIAS)은 WHERE문에서 사용이 불가능합니다. 하지만 WHERE문을 제외한 GROUP BY, HAVING, ORDER BY문에서는 사용이 가능합니다. 참고로 코드에서는 SUBSTR 함수를 사용했는데 LEFT함수를 사용한 풀이도 가능합니다.

알고리즘

[SQL]프로그래머스 Lv.2 중성화 여부 파악하기

✅ 코드1 SELECT ANIMAL_ID , NAME , IF(SEX_UPON_INTAKE LIKE '%Intact%', 'X', 'O') FROM ANIMAL_INS ORDER BY ANIMAL_ID; IF문을 사용한 풀이입니다. ✅ 코드2 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; CASE문을 사용한 풀이입니다.

알고리즘

[SQL]프로그래머스 Lv.2 가격이 제일 비싼 식품의 정보 출력하기

✅ 코드1 SELECT * FROM FOOD_PRODUCT ORDER BY PRICE DESC LIMIT 1; 내림차순 정렬(DESC)과 LIMIT 키워드를 함께 사용하면 TOP1 항목을 가져올 수 있습니다. 실무에서 많이 사용하는 패턴입니다. ✅ 코드2 SELECT * FROM FOOD_PRODUCT AS FP WHERE PRICE = (SELECT MAX(F.PRICE) FROM FOOD_PRODUCT AS F) 서브쿼리를 이용한 풀이입니다.

알고리즘

[SQL]프로그래머스 Lv.2 DATETIME에서 DATE로 형변환

✅ 코드 SELECT ANIMAL_ID , NAME , DATE_FORMAT(DATETIME, '%Y-%m-%d') FROM ANIMAL_INS ORDER BY ANIMAL_ID; 🔎 참고 DATE_FORMAT 함수를 이용한 풀이입니다. MySQL datetime 포맷이라고 검색하면 설정 가능한 옵션 목록을 확인할 수 있습니다.

truezero
데이터 공부하는 제이슨