<문제>
animal_ins 테이블에서 제일 먼저 보호소에 들어온 동물의 시간(datetime)을 조회하여라.
<풀이1: min(변수명)>
min을 사용하여 datetime의 최소값을 구할 수 있다.
SELECT min(datetime)
FROM animal_ins
<풀이2: limit 제한갯수>
order by로 datetime을 정렬시킨다면 제일 위에 있는 값이 가장 먼저들어온 동물의 datetime이다. 여기에 limit를 통해 1개의 행만 추출한다면 min과 같은 결과를 얻을 수 있다.
SELECT datetime
FROM animal_ins
ORDER BY datetime limit 1
limit n1, n2를 사용하여 limit는 n1번째부터 n2개의 값을 가져올 수 있다. 따라서 limit 0,1을 사용하여 0번째부터 1개의 값을 가져와도 결과는 같다.
SELECT datetime
FROM animal_ins
ORDER BY datetime limit 0,1
<풀이3: rank() over(partition by column order by 순서변수)>
rank함수를 이용하여 datetime을 정리한 후, rank가 1인 값만 도출하였다.
SELECT datetime
FROM
(
SELECT datetime, rank() over(order by datetime) ranking
FROM animal_ins
) a
where ranking = 1
<풀이4: <= all(서브쿼리)>
ALL은 주로 서브쿼리에서 사용하며 where절의 모든 조건을 만족해야 하는 다중행 연산자이다. 따라서 모두 Ture 일 경우에만 Ture 값을 반환한다. 이 코드에서는 비교 연산자와 사용하여 최소값보다 작거나 같으면 그 값을 도출하게 하였다.
SELECT datetime
FROM animal_ins
where datetime <= all(SELECT datetime FROM animal_ins)
[SQL]시간 정보 추출(TIME, extract) (0) | 2024.07.01 |
---|---|
[SQL] 특정 값 우선 조회하기(order by field) (0) | 2024.07.01 |
[SQL] 조건이 여러 개인 문제 연산 (0) | 2024.06.27 |
[SQL] n개 이상 중복된 변수를 구분하여 count 하는 방법 (0) | 2024.06.26 |
[SQL] null 값 대체 : coalesce, isnull, if, case (0) | 2024.06.24 |