본문 바로가기
알고리즘/프로그래머스 - SQL 고득점 KIT

프로그래머스 SQL 고득점 Kit - SUM, MAX, MIN

by 호롤롤로루야 2021. 10. 11.

프로그래머스 SQL 고득점 Kit - SUM, MAX, MIN

1. 최댓값 구하기

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/59415

 

코딩테스트 연습 - 최댓값 구하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

문제 조건

1. 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.

쿼리

SELECT DATETIME AS 시간 FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1;

 

SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS;

풀이

1. 가장 최근에 들어온 동물은 1마리다.

2. DATETIME에 대해 역순으로 조회한 후 가장 위에 있는 1개만 조회한다.

3. 원래 문제의 취지에 맞게 MAX를 사용해서도 구할 수 있다.

   . MAX(컬럼명) : 해당 컬럼에 있는 값 중 최댓값

 

2. 최솟값 구하기

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/59038

 

코딩테스트 연습 - 최솟값 구하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

문제 조건

1. 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.

쿼리

SELECT DATETIME AS 시간 FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;

 

SELECT MIN(DATETIME) AS 시간 FROM ANIMAL_INS;

풀이

1. 가장 먼저 들어온 동물은 1마리다.

2. DATETIME에 대해 정순으로 조회한 후 가장 위에 있는 1개만 조회한다.

3. 문제의 취지에 맞게 MIN도 사용할 수 있다.

   . MIN(컬럼명) : 해당 컬럼에 있는 값 중 최솟값

 

3. 동물 수 구하기

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/59406

 

코딩테스트 연습 - 동물 수 구하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

문제 조건

1. 동물 보호소에 동물이 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.

쿼리

SELECT COUNT(*) as count FROM ANIMAL_INS;

풀이

1. 몇 마리가 들어왔는지 알기 위해 count()를 사용했다.

2. count는 용도에 따라 아래와 같이 사용한다.

   . 전체 행의 수를 알고 싶을 때 : count(*)

   . 특정 컬럼의 수를 알고 싶을 때 : count(컬럼명)

 

4. 중복 제거하기

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/59408

 

코딩테스트 연습 - 중복 제거하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

문제 조건

1. 동물 보호소에 들어온 동물의 이름은 개인지 조회하는 SQL 문을 작성해주세요.

2. 이때 이름이 NULL 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.

쿼리

SELECT COUNT(DISTINCT NAME) AS count FROM ANIMAL_INS 
WHERE NAME IS NOT NULL;

풀이

1. 중복 제거를 위해 count를 할 때 DISTINCT 를 사용했다.

2. NULL 인 경우는 제외하기 위해 WHERE 조건에 NAME IS NOT NULL 을 사용했다.

 

 

댓글