프로그래머스_SQL_오답노트_MAX, 서브쿼리 AS 사용 정리

HEE·2025년 3월 12일
0

프로그래머스 SQL

목록 보기
8/13
post-thumbnail

프로그래머스 SQL 고득점 KIT 내 SUM,MAX,MIN

Level 1. 최댓값 구하기

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

정답 확인

SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS

정답 해설

  1. 복잡하게 생각할 거 없이 최근값은 바로 MAX구하기.

  2. [나의 오답] 랭크로 줄세워서 1개 선택하려고 했으나 - 서브쿼리 사용 비효율적 복잡.

서브쿼리와 별칭 AS 사용

  • FROMAS 반드시 필요함.
  • SELECT WHER은 없어도 됨.
  1. SELECT

EX

`SELECT (SELECT MAX(DATETIME) FROM ANIMAL_INS) AS 시간`
  • SELECT서브쿼리는 단일값 반환 (스칼라 서브쿼리)임.
  • AS별칭 사용 필수 아님.
  1. FROM

EX

SELECT DATETIME
FROM (SELECT DATETIME, RANK() OVER (ORDER BY DATETIME DESC) AS 시간
    FROM ANIMAL_INS) A
WHERE RANKING = 1;
  • FROM(서브쿼리) 를 테이블처럼 인식해야해서 AS별칭 필요.
  • AS 별칭 없으면 인식 불가.
  1. WHERE

EX

SELECT PRODUCT_ID, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
  • WHERE절 서브쿼리는 하나의 값을 반환하는 조건식,
  • AS없어도 가능.
  • 서브쿼리 결과가 다중값 반환이면 =이 아닌 IN 사용.
profile
ALL IS WELL

0개의 댓글