프로그래머스 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 |