어떤 테이블에 고객명단이 있다고 가정하였을 때,
[1] 작년에 등록한 사람 수를 구하여 출력
SELECT COUNT(*) "사람수" FROM 테이블명
WHERE EXTRACT(YEAR FOM REGIST_DATE) = EXTRACT(YEAR FROM SYSDATE)-1;
[2] 올해 가장 먼저 등록한 사람의 가입일
SELECT MIN(REGIST_DATE) "가입일" FROM 테이블명
WHERE EXTRACT(YEAR FOM REGIST_DATE) = EXTRACT(YEAR FROM SYSDATE);
[3] 작년에 가장 나중에 등록한 사람의 모든 정보(날짜조회+정보확인=서브쿼리)
SELECT * FROM 테이블명 WHERE REGIST_DATE = ();
위와 아래항을 더하여
SELECT MAX(REGIST_DATE) FROM 테이블명
WHERE EXTRACT(YEAR FOM REGIST_DATE) = EXTRACT(YEAR FROM SYSDATE)-1;
SELECT * FROM 테이블명 WHERE REGIST_DATE = (
SELECT MAX(REGIST_DATE) FROM 테이블명
WHERE EXTRACT(YEAR FOM REGIST_DATE) = EXTRACT(YEAR FROM SYSDATE)-1
);
와 같이된다. 이렇게 하면 가장 나중에 등록한 고객의 모든 정보가 나온다.
'Database SQL > Oracle' 카테고리의 다른 글
[DB#21] (0) | 2020.11.30 |
---|---|
[DB#20] 그룹설정+예제 (0) | 2020.11.30 |
[DB#18] 오라클 함수 (0) | 2020.11.26 |
[DB#17] 정렬(SELECT) 데이터를 정렬해보자!(ASC, DESC) (0) | 2020.11.26 |
[DB#16] 조회(SELECT) (0) | 2020.11.25 |