안녕하세요 업무중 통계를 뽑아야 하는데 머리가 돌아가지 않아 도움을 요청 합니다.
일단 데이터는
WITH TEMP AS (
SELECT 'DOC1' KEYCOL, 'YXXXXXX' TARVAL FROM DUAL UNION ALL
SELECT 'DOC2' KEYCOL, 'XYXXXXX' TARVAL FROM DUAL UNION ALL
SELECT 'DOC3' KEYCOL, 'XYXXXXY' TARVAL FROM DUAL
)
SELECT * FROM TEMP
TARVAL 컬럼의 값에 Y가 몇번째 있는 것들의 통계를 뽑아야 합니다. Y값이 문자열중 한개만 있으면 편하겠는데
문제는 Y값이 없을수도 있고 1~7개 까지 될수 있습니다. 'XXXXXXX' ~ 'YYYYYYY' 이렇게요
위의 3번째 데이터는 둘째 자리에도 Y가 있고 일곱번째 자리에도 Y가 있으므로 2번 카운팅이 되어야 합니다.
위에 TEMP데이터의 통계는
Y의 자릿수 |
첫째 |
둘째 |
셋째 |
넷째 |
다섯째 |
여섯째 |
일곱째 |
|
1 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
1 |
|
|
|
|
1 |
SUM |
1 |
2 |
|
|
|
|
1 |
이런식으로
첫째자리 Y가 있는것의 합은 1
둘째자리 Y 합 2
셋째~여섯째 0
일곱째 1
요렇게 결과를 뽑고 싶은데 어렵네요 ...
|