프로그래머스 링크: programmers.co.kr/learn/courses/30/lessons/59040
코딩테스트 연습 - 고양이와 개는 몇 마리 있을까
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
코딩 테스트의 SQL 문제를 대비하기 위해 공부하며 정리한 글입니다.
1. 고양이와 개는 몇 마리 있을까
programmers.co.kr/learn/courses/30/lessons/59040
코딩테스트 연습 - 고양이와 개는 몇 마리 있을까
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
ANIMAL_INS 테이블로부터, 고양이와 개가 각각 몇 마리인지 출력하는 문제
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE
2. 동명 동물 수 찾기
programmers.co.kr/learn/courses/30/lessons/59041
코딩테스트 연습 - 동명 동물 수 찾기
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
ANIMAL_INS 테이블로부터, 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 이름 순으로 정렬하며, 이름이 없는 동물은 제외하여 출력하는 문제
SELECT NAME, COUNT(*)
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME
3. 입양 시각 구하기(1)
programmers.co.kr/learn/courses/30/lessons/59412
코딩테스트 연습 - 입양 시각 구하기(1)
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물
programmers.co.kr
ANIMAL_OUTS 테이블로부터, 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생하였는지 시간 순으로 정렬하여 출력하는 문제
SELECT HOUR(DATETIME) HOUR, COUNT(DATETIME) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR >= 9 and HOUR <= 20
ORDER BY HOUR
4. 입양 시각 구하기(2)
programmers.co.kr/learn/courses/30/lessons/59413
코딩테스트 연습 - 입양 시각 구하기(2)
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물
programmers.co.kr
ANIMAL_OUTS 테이블에서, 0시부터 23시까지, 각 시간대벼로 입양이 몇 건이나 발생하였는지 시간 순으로 정렬하여 출력하는 문제
이 문제는 프로그래머스 내에서 레벨 4로 분류되어 있습니다.
저도 공부하던 중에 0시처럼 항목이 없는 부분을 출력하려면 어떻게 해야 하는지 감이 오지 않았고, 인터넷 검색을 통해 로컬 변수라는 개념을 접했습니다.
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;
제가 직접 작성한 코드가 아닌, 다른 블로그를 참고하여 작성한 코드입니다.
'알고리즘, 문제해결 > 알고리즘, 자료구조' 카테고리의 다른 글
[SQL] JOIN (0) | 2021.03.11 |
---|---|
[SQL] is Null (0) | 2021.03.11 |
[SQL] SUM, MAX, MIN (0) | 2021.03.10 |
[SQL] SELECT (0) | 2021.03.10 |
그래프 이론 (0) | 2021.02.12 |
댓글