ProblemSolving/SQL

프로그래머스 SQL (GROUP BY)

OSNIM 2022. 5. 13. 16:52
반응형

1번: 고양이와 개는 몇 마리 있을까 

 

문제: https://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 테이블 예시

ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE
A373219 Cat 2014-07-29 11:43:00 Normal Ella Spayed Female
A377750 Dog 2017-10-25 17:17:00 Normal Lucy Spayed Female
A354540 Cat 2014-12-11 11:48:00 Normal Tux Neutered Male

문제 설명 

 

동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성

고양이를 개보다 먼저 조회

>>

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

 

2번: 동명 동물 수 찾기

 

문제 : https://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

문제 설명

 

동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성

이름이 없는 동물은 집계에서 제외, 이름 순으로 조회

>>

SELECT NAME, COUNT(*) as COUNT
FROM ANIMAL_INS
GROUP BY NAME 
HAVING COUNT(NAME) >=2
ORDER BY NAME

 

 

3번: 입양 시각 구하기(1)

 

문제: https://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

>>

SELECT HOUR(DATETIME), COUNT(*) as COUNT 
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 and HOUR(DATETIME) < 20
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME)

시간 데이터 중에서 시간만 출력하는 HOUR 뿐만 아니라 다음도 출력할 수 있습니다.
- YEAR: 연도
- MONTH: 월
- DAY: 일 
- HOUR: 시 
- MINUTE: 분
- SECOND: 초

 

DATE DIFF - 일 차이 계산

SELECT DATEDIFF(A, A 이후) FROM ANIMAL_INS

 

TIMESTAMPDIFF - 단위시간 차이 계산

 

SELECT TIMESTAMPDIFF(HOUR, A, A 이후) FROM ANIMAL_INS

HOUR 대신 들어갈 수 있는 단위시간 예약어

- SECOND  : 초
- MINUTE   : 분
- HOUR      : 시
- DAY        : 일
- WEEK      : 주
- MONTH   : 월
- QUARTER : 분기
- YEAR       : 연

반응형