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

);

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

 

'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