[프로그래머스] SQL 코테 정복하기
by 코딩무비반응형
전체 문제
더보기를 클릭하셔서 각 문제를 확인 할 수 있습니다!
select 문
더보기
문제
모든 레코드 정복하기
select *
from animal_ins
order by animal_id;
역순 정렬하기
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC
아픈 동물 찾기
SELECT ANIMAL_ID,NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION='Sick';
어린 동물 찾기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged';
동물의 아이디와 이름
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
order by ANIMAL_ID;
여러기준 정렬하기
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME asc ,DATETIME DESC;
상위 n개 레코드
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
SUM, MAX , MIN
더보기
문제
최대값 구하기
SELECT DATETIME AS '시간'
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1;
최솟값 구하기
SELECT DATETIME AS '시간'
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
동물수 구하기
SELECT COUNT(*) AS count
FROM ANIMAL_INS;
중복 제거하기
SELECT COUNT(DISTINCT(NAME))
FROM ANIMAL_INS;
GROUP BY
더보기
문제
고양이와 개는 몇 마리 있을까
SELECT ANIMAL_TYPE, COUNT(*) count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE;
동명 동물 수 찾기
SELECT NAME, COUNT(*) COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME)>1
ORDER BY NAME;
입양 시각 구하기(1)
SELECT DATE_FORMAT(DATETIME,"%H") HOUR , COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR BETWEEN 9 AND 20
ORDER BY HOUR;
입양 시각 구하기(2)
못풀었어요
IS NULL
더보기
문제
이름이 없는 동물의 아이디
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL;
이름이 있는 동물의 아이디
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL;
NULL 처리하기
SELECT ANIMAL_TYPE, IF(NAME IS NOT NULL,NAME,"No name") NAME ,SEX_UPON_INTAKE
FROM ANIMAL_INS
JOIN
더보기
문제
없어진 기록 찾기
SELECT ANIMAL_ID,NAME
FROM ANIMAL_OUTS
WHERE ANIMAL_ID NOT IN (
SELECT ANIMAL_ID
FROM ANIMAL_INS
);
있었는데요 없었습니다
SELECT I.ANIMAL_ID,I.NAME
FROM ANIMAL_INS AS I
JOIN ANIMAL_OUTS AS O
ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE
I.DATETIME> O.DATETIME
ORDER BY I.DATETIME;
오랜 기간 보호한 동물(1)
SELECT NAME,DATETIME
FROM ANIMAL_INS AS I
WHERE I.ANIMAL_ID NOT IN (SELECT ANIMAL_ID
FROM ANIMAL_OUTS
)
ORDER BY I.DATETIME
LIMIT 3
보호소에서 중성화한 동물
SELECT I.ANIMAL_ID , I.ANIMAL_TYPE , I.NAME
FROM ANIMAL_INS AS I
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%'
OR
SELECT ANIMAL_ID,ANIMAL_TYPE,NAME
FROM ANIMAL_INS
WHERE SEX_UPON_INTAKE LIKE "Intact%" AND
ANIMAL_ID IN (
SELECT ANIMAL_ID
FROM ANIMAL_OUTS
WHERE SEX_UPON_OUTCOME NOT LIKE "Intact%"
);
String, Date
더보기
문제
루시와 엘라 찾기
SELECT ANIMAL_ID,NAME,SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID ASC
이름에 el이 들어가는 동물 찾기
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' and animal_type = 'Dog'
order by name;
중성화 여부 파악하기
SELECT ANIMAL_ID,NAME,IF(SEX_UPON_INTAKE LIKE "Neutered%"
or SEX_UPON_INTAKE LIKE "Spayed%","O","X") 중성화
FROM ANIMAL_INS
오랜 기간 보호한 동물
-- 코드를 입력하세요
SELECT O.ANIMAL_ID,O.NAME
FROM ANIMAL_OUTS AS O
JOIN ANIMAL_INS AS I
ON O.ANIMAL_ID = I.ANIMAL_ID
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2
DATETIME에서 DATE로 형변환
SELECT ANIMAL_ID , NAME , DATE_FORMAT(DATETIME,"%Y-%m-%d") 날짜
FROM ANIMAL_INS
추가문제
더보기
우유와 요거트가 담긴 장바구니
SELECT CART_ID
FROM CART_PRODUCTS
WHERE CART_ID IN (
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Milk'
) AND NAME = 'Yogurt';
헤비 유저가 소유한 장소
SELECT *
FROM PLACES
WHERE HOST_ID IN (
SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(HOST_ID)>=2
)
ORDER BY ID ASC
++ 요즘 SQL 코테 문제들의 난이도가 어려운 것 같습니다
공부를 더 해야겠어요
반응형
'문제풀이(ps)' 카테고리의 다른 글
LeetHub 디렉토리 구조 백준허브처럼 변경하기 (4) | 2023.07.26 |
---|---|
[백준] 3197번 - 백조의호수 (자바, java) (4) | 2023.07.25 |
[백준] 17070번 파이프 옮기기 1 (python 파이썬) (10) | 2022.04.28 |
[백준]11049번 행렬 곱셈 순서(python 파이썬) (18) | 2022.04.26 |
[백준] 12865번 평범한 배낭(python 파이썬) (6) | 2022.04.25 |
블로그의 정보
코딩무비
코딩무비