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

);

와 같이된다. 이렇게 하면 가장 나중에 등록한 고객의 모든 정보가 나온다.