오늘도 스터디 과제 3문제를 풀고 코드 리뷰까지 하면서 다양한 쿼리를 사용하였는데
원하는 행을 제한하는 LIMIT과 DISTINCT를 활용할 수 있는 문제를 만났습니다.
최댓값 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/59415
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT
MAX(DATETIME) AS 시간
FROM
ANIMAL_INS
;
이 문제는 사실 MAX 함수로 날짜 중에 가장 높은 값을 하나 조회하면 어려운 문제는 아니다.
그런데 만약 MAX 함수를 안 쓰고 풀면 어떻게 풀어야 할까?
또 만약에 가장 최근에 들어온 동물 3마리가 언제 들어왔는지 조회한다면 어떻게 SQL을 작성해야할까?
답을 맞추는 것보다 SQL을 활용하는 것이 중요하다고 생각해서 스스로 문제를 만들어봤다.
LIMIT
LIMIT 를 사용하여 결과에서 몇개의 행을 반환할지 제한 할 수가 있다.
SELECT 칼럼명 FROM 테이블명
LIMIT 제한할갯수;
예를 들어 제한할 갯수를 3라고 지정한다면
( LIMIT 3; ) 3개의 행만 반환될 것이다.
MAX 함수를 안 쓰고 가장 최근 날짜를 구하는 방법은?
SELECT
DATETIME AS 시간
FROM
ANIMAL_INS
ORDER BY
DATETIME DESC
LIMIT
1
;
DATETIME을 내림차순 정렬해주고 가장 맨 위에 있는 행을 조회합니다.
배열의 내림차순으로 정렬하고 index[0]을 조회하는 느낌입니다.
그럼 가장 최근 날짜 3개를 조회한다면 LIMIT 의 숫자만 바꿔주면 되겠죠!
LIMIT은 이처럼 원하는 행의 개수를 제한(한정) 해주는 명령어입니다.
가장 최근에 들어온 동물 3마리가 언제 들어왔는지 구하는 방법은?
SELECT
DATETIME AS 시간
FROM
ANIMAL_INS
ORDER BY
DATETIME DESC
LIMIT
3
;
중복 제거하기
https://school.programmers.co.kr/learn/courses/30/lessons/59408
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT
COUNT(DISTINCT NAME) AS NAME
FROM
ANIMAL_INS
WHERE
NAME IS NOT NULL
DISTINCT
DISTINCT 쿼리 는 중복된 값을 제거한 결과를 반환한다.
SELECT DISTINCT 칼럼명 FROM 테이블명;
경기도에 위치한 식품창고 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131114
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT
WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
IFNULL(FREEZER_YN, 'N') AS FREEZER_YN
FROM
FOOD_WAREHOUSE
WHERE
ADDRESS LIKE "경기도%"
ORDER BY
WAREHOUSE_ID ASC
;
- IFNULL
- SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명;
- 해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수이다.
- NULL 값 처리 함수
강원도에 위치한 생산공장 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131112
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT
FACTORY_ID,
FACTORY_NAME,
ADDRESS
FROM
FOOD_FACTORY
WHERE
ADDRESS LIKE "강원도%"
'SQL' 카테고리의 다른 글
[SQL] IS NULL ( NULL은 = 아닙니다) (0) | 2023.03.27 |
---|---|
SQL 스터디 1일차 (0) | 2023.03.23 |
SQL 스터디를 시작한 이유 (프론트엔드도 SQL 알아야 해?) (0) | 2023.03.23 |