본문 바로가기

Computer Science/데이터베이스(DB)

[DB/SQL] 프로그래머스 MySQL 문제 (LEVEL 2) 풀이 (1)

반응형

 

 

[문제]

 

 

[풀이]

 

고양이(Cat)를 개(Dog)보다 먼저 조회해야 하므로 ANIMAL_TYPE을 오름차순으로 정렬한다. 

고양이와 개의 마리수를 각각 계산하기 위해선 GROUP BY를 통해서 그룹으로 묶어주면 된다. 

SELECT ANIMAL_TYPE, COUNT(*) 
FROM ANIMAL_INS 
GROUP BY ANIMAL_TYPE 
ORDER BY ANIMAL_TYPE

 


[문제]

 

 

[풀이]

 

IN 연산자를 사용하면 특정 이름 값만 조회할 수 있다. 특정 이름 값만 제외하고 싶다면 NOT IN을 사용할 수 있다.

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE 
FROM ANIMAL_INS 
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') 
ORDER BY ANIMAL_ID

 


[문제]

 

 

[풀이]

 

문자열에 특정 패턴이 포함되어있는지 확인하기 위해서는 LIKE 명령어를 사용한다. 

앞에 %가 붙어있으면 해당 패턴으로 끝나는 문자열, 뒤에 %가 붙어있으면 해당 패턴으로 시작하는 문자열, 앞뒤 모두 %가 붙어있으면 해당 패턴을 포함하는 문자열을 조회한다. 

SELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS 
WHERE ANIMAL_TYPE = 'Dog' and NAME LIKE '%el%' 
ORDER BY NAME

 


[문제]

 

[풀이]

 

SELECT NAME, COUNT(NAME) AS 'COUNT' 
FROM ANIMAL_INS 
GROUP BY NAME 
HAVING COUNT(NAME) >= 2
ORDER BY NAME

 


[문제]

 

 

[풀이]

 

SELECT MIN(DATETIME) AS '시간' 
FROM ANIMAL_INS

 

반응형