코딩테스트 연습_0723

starlikedh
|2021. 7. 23. 22:37

프로그래머스 SQL 고득점 KIT 풀어보기!

SELECT >  여러 기준으로 정렬하기
문제: 동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요.
단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.

풀이: 아이디, 이름, 보호 시작일을 조회하기 위해 SELECT 시 해당 컬럼 적어주었다.
ORDER BY절로 이름순 먼저 그 다음보호 나중에 시작한 동물 먼저 출력이니 DATETIME DESC 처리해주었다.

SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME ASC, DATETIME DESC;

SUM, MAX, MIN > 중복 제거하기
문제: 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 
이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.

풀이: 중복을 제거해서 count해야 하므로 count 처리 시 DISTINCT NAME으로 쿼리문을 만들어준다.

SELECT COUNT(DISTINCT NAME) as count
FROM ANIMAL_INS;

GROUP BY > 고양이와 개는 몇 마리 있을까?
문제: 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 
이때 고양이를 개보다 먼저 조회해주세요.

풀이: count 함수로 개수를 구해주고 group by로 고양이 개를 그룹화 하였다.
고양이를 개보다 먼저 조회하기 위해 order by로 처리해주었다.

SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE ASC;

 

 

'Database' 카테고리의 다른 글

코딩테스트 연습_0729  (0) 2021.07.29
코딩테스트 연습_0728  (0) 2021.07.28
해커랭크 SQL문제_0722  (0) 2021.07.22
해커랭크 SQL문제_0721  (0) 2021.07.21
해커랭크SQL문제_0720  (0) 2021.07.20