초보자 count 함수 년도별 인원 질문이요 0 2 2,554

by 싼타 [2009.04.14 01:24:46]


select COUNT(to_char(hire_date,'yyyy'))"TOTAL",
       COUNT(CASE to_char(hire_date,'yyyy')
       WHEN '1995' THEN '1995'
       ELSE NULL END)"1995",
       COUNT(CASE to_char(hire_date,'yyyy')
       WHEN '1996' THEN '1996'
       ELSE NULL END)"1996",
       COUNT(CASE to_char(hire_date,'yyyy')
       WHEN '1997' THEN '1997'
       ELSE NULL END)"1997",
       COUNT(CASE to_char(hire_date,'yyyy')
       WHEN '1998' THEN '1998'
       ELSE NULL END)"1998"
from employees

오라클 10g 정식교제 sql 편 4-28쪽 10번 문제 인데요

1995년도 입사 사원 인원과, 1996년, 1997년,1998년 그리고 토탈 인원구하는 문제인데요;;;

오라클클럽과 10g 교제에서 고민하다가 case 를 사용해서 뭐 비슷한 답은 간신히 찼았는데요

이거 말고 다른 방식으로 쉽게 하는 방법은 없나요???

너무 어렵게 찼아서 그런가 혹시 다른방법이 있을꺼 같은 생각에 궁금해서 이렇게 글올립니다.

 

by 마농 [2009.04.14 08:20:22]
SELECT NVL(TO_CHAR(hire_date,'yyyy'),'TOTAL') yyyy
, COUNT(*) cnt
FROM employees
WHERE hire_date >= TO_DATE('19950101','yyyymmdd')
AND hire_date < TO_DATE('19981231','yyyymmdd') + 1
GROUP BY ROLLUP(TO_CHAR(hire_date,'yyyy'))

by 싼타 [2009.04.14 11:22:43]
마농님 감사함니다
to_date를 생각도 못했습니다 ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입