2011-05-09 7 views
-1

아니오의 조건에 따라 트랙을 가져간 고용주를 아래의 세 가지 다른 열로 분류하고 싶습니다. 그들이 DB 칼럼을 사용하여 코스를 수료 한 날의 일 수는 lrn_complt입니다.고용주를 조건에 따라 세 개의 열로 분류하는 방법은 무엇입니까?

0-30days    30-60days   60-90days 
1st column   2nd column   3rd column 

에서 트랙을 완성 사람 EMP의 어떤이의 SQL이 필요하거나 너무 논리를 말할 수 있다면 도움이 될 수 있습니다 ??? : 일의 촬영되지

+0

어떤 데이터베이스를 사용하고 있습니까? –

+0

nexus teratom 그리고 SQL과 작동합니다. – Mohammad

답변

2

모든 사람이 문제를 올바르게 이해할 수 있도록 테이블 작성 및 게시 문을 게시해야합니다. 입력 테이블, 데이터 및 예상 출력 및 대상 RDBMS.

http://tkyte.blogspot.com/2005/06/how-to-ask-questions.html

기본적으로

Select id, 
     (select count(*) from courses where days between 0 and 30) 0_to_30_days, 
     (select count(*) from courses where days between 31 and 60) 0_to_30_days 
     (select count(*) from courses where days between 61 and 90) 0_to_30_days 
from courses; 
0

...

당신은 아래와 같이 인라인 쿼리를 시도 할 수 있습니다 ...이 같은 두 개의 열이 가정하면, 하나의 내부에 3 개 하위 쿼리를 만들 필요가 마스터 검색어 :

SELECT 
(SELECT COUNT(*) FROM EMPLOYER WHERE LRN_COMPLT BETWEEN 0 AND 30) AS COLUMN1, 
(SELECT COUNT(*) FROM EMPLOYER WHERE LRN_COMPLT BETWEEN 31 AND 60) AS COLUMN2, 
(SELECT COUNT(*) FROM EMPLOYER WHERE LRN_COMPLT BETWEEN 61 AND 90) AS COLUMN3 
FROM DUAL 
0

가 필요합니다..

Select id, 
     COUNT(CASE WHEN lrn_complt between 0 and 30 THEN 1 END) Group1, 
     COUNT(CASE WHEN lrn_complt between 31 and 60 THEN 1 END) Group2, 
     COUNT(CASE WHEN lrn_complt between 61 and 90 THEN 1 END) Group3 
from courses; 
관련 문제