
프로그래머스 SQL 고득점 KIT 내 SUM,MAX,MIN
Level 1. 최댓값 구하기
가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
정답 확인
SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS
정답 해설
복잡하게 생각할 거 없이 최근값은 바로 MAX구하기.
[나의 오답] 랭크로 줄세워서 1개 선택하려고 했으나 - 서브쿼리 사용 비효율적 복잡.
서브쿼리와 별칭 AS 사용
FROM은AS반드시 필요함.SELECTWHER은 없어도 됨.
SELECT EX
`SELECT (SELECT MAX(DATETIME) FROM ANIMAL_INS) AS 시간`
SELECT절 서브쿼리는 단일값 반환 (스칼라 서브쿼리)임.AS별칭 사용 필수 아님.FROMEX
SELECT DATETIME
FROM (SELECT DATETIME, RANK() OVER (ORDER BY DATETIME DESC) AS 시간
FROM ANIMAL_INS) A
WHERE RANKING = 1;
FROM(서브쿼리) 를 테이블처럼 인식해야해서 AS별칭 필요.AS 별칭 없으면 인식 불가.WHEREEX
SELECT PRODUCT_ID, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);
WHERE절 서브쿼리는 하나의 값을 반환하는 조건식, AS없어도 가능.서브쿼리 결과가 다중값 반환이면 =이 아닌 IN 사용.