SIU
article thumbnail

오늘도 스터디 과제 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 "강원도%"

 

 

 

profile

SIU

@웹 개발자 SIU

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!