Database SQL/Oracle
[DB#19] 함수 및 서브쿼리 점검 문제
양동민
2020. 11. 26. 15:24
어떤 테이블에 고객명단이 있다고 가정하였을 때,
[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
);
와 같이된다. 이렇게 하면 가장 나중에 등록한 고객의 모든 정보가 나온다.