일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- transform
- HTML
- 코딩테스트연습
- CSS
- 코딩테스트 문제 SELECT
- 이클립스
- 퍼블리싱
- 프로젝트 생성시 나는 오류
- powerShell 오류
- 알씨로열려요
- 네트워크
- 자바
- 드래그앤드랍
- PSD파일 안열려요
- 이미지알씨로열릴때
- 드래그앤드롭안됨
- 퍼블리싱공부
- 프로그래머스
- 백준코딩테스트 1단계
- #포토샵#GTQ1급#누끼따기#누끼#보정#합성#인물보정#인물합성#누끼따는방법#펜툴로누끼따는방법#펜툴이용방법#펜툴사용방법#서이추#이웃#서이추환영#이웃환영#일상#소통#초보블로거#포토샵기초
- java
- SQL코딩테스트 연습
- 공부
- spring
- 오류
- 드래그앤드랍해결방법
- PSD 알씨로열려요
- PSD알씨로열릴때
- 웹페이지제작
- 잘난웹디
- Today
- Total
기억하기 위한 기록
[프로그래머스_코테 연습] SQL | SUM, MAX, MIN 본문
1. 최대값 구하기 (MAX)
| 문제설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE 는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. |
❓ 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
[정답]
-- MySQL
SELECT MAX(DATETIME) '시간'
FROM ANIMAL_INS;
-- Oracle
-- 오라클은 AS를 이용해 별칭을 지정할 수 있다.
SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS;
| 예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면, 가장 늦게 들어온 동물은 Annna 이고, Anna는 2013-11-18 17:03:00에 들어왔습니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
| 풀이
[최댓값 구하기] : 가장 최근에 들어온 동물
1. MAX( ) 를 통해 가장 큰 값을 알 수 있다. (시간에서 가장 큰 값 = 가장 최근)
SELECT MAX(DATETIME) '시간'
FROM ANIMALS_INS;
2. MAX( ) 를 사용하지 않고 조회하는 방법
SELECT DATETIME '시간'
FROM ANIMALS_INS ORDER BY DATETIME DESC LIMIT 1;
- ORDER BY DESC를 통해 내림차순 정렬후, LIMIT 를 통해 1번째 row만 가져오기.
2. 최소값 구하기 (MIN)
| 문제설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE 는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. |
❓ 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL문을 작성해주세요.
[정답]
-- MySQL
SELECT MIN(DATETIME) '시간'
FROM ANIMAL_INS;
-- Oracle
SELECT MIN(DATETIME) AS 시간
FROM ANIMAL_INS;
| 예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면, 가장 늦게 들어온 동물은 Jack이고, Jack는 2013-10-14 15:38:00에 들어왔습니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
| 풀이
[최솟값 구하기] : 가장 늦게 들어온 동물(가장 먼저)
1. MIN( ) 를 통해서 가장 작은 값을 알 수 있다.
SELECT MIN(DATETIME) '시간'
FROM ANIMALS_INS;
2. MIN( ) 를 사용하지 않고 조회하는 방법
SELECT DATETIME '시간'
FROM ANIMALS_INS ORDER BY DATETIME LIMIT 1;
- ORDER BY 함수를 통해 오름차순 정렬 후 , LIMIT 를 통해 1번째 row만 가져오기.
3. 동물 수 구하기 (COUNT)
| 문제설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE 는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. |
❓ 동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL문을 작성해주세요.
[정답]
-- MySQL
SELECT COUNT(ANIMAL_ID)
FROM ANIMAL_INS;
-- Oracle
SELECT COUNT(ANIMAL_ID)
FROM ANIMAL_INS
| 예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면, 가장 늦게 들어온 동물은 Annna 이고, Anna는 2013-11-18 17:03:00에 들어왔습니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
| 풀이
[동물 수 구하기] : 동물이 몇마리인지 COUNT하기
1. COUNT( ) 를 통해서 개수를 구할 수 있다.
SELECT COUNT(ANIMAL_ID)
FROM ANIMAL_INS;
4. 중복 제거하기 (DISTINCT)
| 문제설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKE 는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. |
❓ 동물 보호소에 들어온 동물의 이름은 몇개인지 조회하는 SQL문을 작성해주세요. 이 때 이름이 NULL인 경우는 집계하지 않으며, 중복되는 이름은 하나로 칩니다.
[정답]
-- MySQL
SELECT COUNT(DISTINCT NAME) -- 중복제거
FROM ANIMAL_INS
WHERE NAME IS NOT NULL; -- 조건
-- Oracle
SELECT COUNT(DISTINCT NAME) -- 중복제거
FROM ANIMAL_INS
WHERE NAME IS NOT NULL; -- 조건
| 예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면, 보호소에 들어온 동물의 이름은 NULL, *Sam , *Sam, *Sweetie입니다. 이 중 NULL과 중복되는 이름을 고려하면, 보호소에 들어온 동물 이름의 수는 2 입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
| 풀이
[중복 제거하기] : 동물이 몇마리인지 COUNT하는데 중복 제거와 , NULL 포함시키지 않기
1. COUNT( ) 를 통해서 개수를 구할 수 있으며, DISTINCT를 통해 중복을 제거할 수 있고, WHERE절을 사용해 NULL이 아닌 NAME만 COUT할 수 있다.
-- MySQL
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL;
-- Oracle
SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL;
'코딩테스트 연습' 카테고리의 다른 글
[프로그래머스] SQL_SELECT (0) | 2022.03.07 |
---|---|
[백준] 1단계 | We love kriii - JAVA (0) | 2022.02.25 |
[백준] 1단계 | Hello World! 를 출력하시오 - JAVA (0) | 2022.02.25 |
[프로그래머스_코테 연습] SQL | Group by (0) | 2022.02.23 |
[프로그래머스_코테 연습] SQL | Group by (0) | 2022.02.22 |