데이터 분석/SQL

[day2] SQL - 상위 n개 데이터 구하기 'Limit'

경 민 2025. 2. 18. 10:05
SELECT NAME
FROM 
(
SELECT NAME , 
        RANK () OVER (ORDER BY DATETIME) AS RNK
FROM ANIMAL_INS
) A
WHERE RNK = 1

window 함수 + 서브쿼리 까지 써서 엄청 어렵게 풀었다 ^ ,, ^

정말 밥오같은 나

 

 

 

뭔가 이상한 건 느꼈는지 (^^)

다른 분 어떻게 쓰셨는지 확인해봤더니 !

Limit 으로 상위 n개 값 구할 수 있음 .. 

SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME LIMIT 1

 

이렇게 간단한 쿼리인데  . . . ! ! ! 

 

근데 여기서 궁금했던 게 

MIN 함수 활용해서 아예 WHERE 처리하면 좋지 않나? 

싶어서 실행해봤더니 에러가 났다.

SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME IS MIN(DATETIME)

 

안 되는 이유 : IS 는 NULL 구문에서 사용하는 거임. ' = ' 으로 바꿔보자.

그래도 안 됨.

안 되는 이유 : WHERE절에는 집계함수 MIN 쓸 수 없음 !!!!!!!