❤친 문제는 조금 신경써야할 문제를 체크했습니다.
최댓값 구하기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59415
코드
SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC LIMIT 1
모든 레코드 조회하기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59034
코드
SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID
역순 정렬하기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59035
코드
SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC
아픈 동물 찾기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59036
코드
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_ID
우유와 요거트가 담긴 장바구니
문제링크 ❤
https://programmers.co.kr/learn/courses/30/lessons/62284
코드
SELECT A.CART_ID FROM
(SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk') as A,
(SELECT CART_ID FROM CART_PRODUCTS WHERE NAME='Yogurt') as B
WHERE A.CART_ID = B.CART_ID
어린 동물 찾기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59037
코드
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != 'Aged' ORDER BY ANIMAL_ID
동물의 아이디와 이름
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59403
코드
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID
최솟값 구하기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59038
코드
SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1
여러 기준으로 정렬하기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59404
코드
SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME, DATETIME DESC
이름이 없는 동물의 아이디
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59039
코드
SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL
동물 수 구하기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59406
코드
SELECT COUNT(ANIMAL_ID) FROM ANIMAL_INS
상위 N개 레코드
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59405
코드
SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1
이름이 있는 동물의 아이디
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59407
코드
SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID
중복 제거하기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59408
코드
SELECT COUNT(DISTINCT(NAME)) FROM ANIMAL_INS
고양이와 개는 몇 마리 있을까
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59040
코드
SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE
동명 동물 수 찾기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59041
코드
SELECT NAME, COUNT(ANIMAL_ID) FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT(ANIMAL_ID) >= 2 ORDER BY NAME
NULL 처리하기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59410
코드
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') as NAME, SEX_UPON_INTAKE FROM ANIMAL_INS
입양 시각 구하기(1)
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59412
코드
SELECT HOUR(DATETIME) AS HOUR, COUNT(ANIMAL_ID) FROM ANIMAL_OUTS GROUP BY HOUR(DATETIME) HAVING HOUR >= 9 AND HOUR <= 19 ORDER BY HOUR
없어진 기록 찾기
문제링크 ❤
https://programmers.co.kr/learn/courses/30/lessons/59042
코드
SELECT A.ANIMAL_ID, A.NAME FROM
ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
있었데요 없었습니다
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59043
코드
SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.DATETIME > B.DATETIME
ORDER BY A.DATETIME
입양 시각 구하기(2)
문제링크 ❤
https://programmers.co.kr/learn/courses/30/lessons/59413
코드
SET @HOUR := -1;
SELECT (@HOUR := @HOUR +1) AS HOUR, (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR) AS COUNT FROM ANIMAL_OUTS
WHERE @HOUR < 23
풀이
SET 옆에 변수명과 초기값을 설정
할 수 있습니다.
- @가 붙은 변수는 프로시저가 종료되어도 유지된다고 생각하면 됩니다.
- 이를 통해 값을 누적하여 0부터 23까지 표현할 수 있습니다.
@hour은 초기값을 -1로 설정합니다. PL/-SQL 문법에서 :=은 비교 연산자 =과 혼동을 피하기 위한의 대입 연산입니다.
SELECT (@hour := @hour +1) 은 @hour의 값에 1씩 증가시키면서 SELECT 문 전체를 실행하게 됩니다.
이 때
처음에 @hour 값이 -1 인데, 이 식에 의해 +1 이 되어 0
이 저장됩니다.
- HOUR 값이 0부터 시작할 수 있습니다.
- WHERE @hour < 23일 때까지, @hour 값이 계속 + 1씩 증가합니다.
오랜 기간 보호한 동물(1)
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59044
코드
SELECT A.NAME, A.DATETIME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY DATETIME
LIMIT 3
보호소에서 중성화한 동물
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59045
코드
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.SEX_UPON_INTAKE LIKE 'Intact%' AND (B.SEX_UPON_OUTCOME LIKE 'Neutered%' OR B.SEX_UPON_OUTCOME LIKE 'Spayed%')
풀이
LIKE 두개 이상 사용시
LIKE 조건 OR LIKE 조건 으로 써야한다.
LIKE 조건 OR 조건 은 틀림
루시와 엘라 찾기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59046
코드
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') ORDER BY ANIMAL_ID
이름에 el이 들어가는 동물 찾기
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59047
코드
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog' ORDER BY NAME
중성화 여부 파악하기
문제링크 ❤
https://programmers.co.kr/learn/courses/30/lessons/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
오랜 기간 보호한 동물(2)
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59411
코드
SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NOT NULL
ORDER BY (B.DATETIME - A.DATETIME) DESC
LIMIT 2
DATETIME에서 DATE로 형 변환
문제링크
https://programmers.co.kr/learn/courses/30/lessons/59414
코드
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜' FROM ANIMAL_INS ORDER BY ANIMAL_ID