컬럼 데이터 개수 count 내는 법 문의 1 5 1,471

by Taems [Oracle 기초] [2015.08.10 14:38:03]


안녕하세요~ 날씨가 많이 더운데 모두들 더위 조심하세요~

 

A컬럼 안에 데이터 값이 들어가있는데요 각 행별로 있는 데이터 개수를 카운트할 수 있는지 문의 드립니다.

구글링을 해도 검색에 나오지 않아 이렇게 문의를 드립니다~고수님들의 조언 많이 부탁드립니다~

                                   A컬럼         COUNT
2014 ?
2008,2009,2010,2011,2012,2013 ?
2005,2006,2007,2008,2009,2010,2011,2012,2013 ?

 

by 창조의날개 [2015.08.10 14:56:34]


WITH TT(A) AS (
    SELECT '2014' FROM DUAL UNION ALL
    SELECT '' FROM DUAL UNION ALL
    SELECT '2008,2009,2010,2011,2012,2013' FROM DUAL UNION ALL
    SELECT '2005,2006,2007,2008,2009,2010,2011,2012,2013' FROM DUAL
)
SELECT REGEXP_COUNT(A,',')+1 COUNT1
     , REGEXP_COUNT(A,'20') COUNT2
     , CEIL(LENGTH(A)/5) COUNT3
     , ROUND(LENGTH(A)/5) COUNT4
     , LENGTH(REPLACE(A,','))/4 COUNT5
     , SUBSTR(A,-4,4) - SUBSTR(A,1,4) + 1 COUNT6
FROM TT
;

by 아발란체 [2015.08.10 14:58:31]
WITH T AS (
  SELECT '2005,2010' AS a FROM DUAL
  UNION ALL SELECT '2005,2010,2011' FROM DUAL
)
SELECT a, REGEXP_COUNT(a, ',') + 1 AS count FROM T

 


by 아발란체 [2015.08.10 15:02:37]
SELECT a, LENGTH(a) - LENGTH(REPLACE(a, ',', '')) + 1 AS count FROM T

 


by Taems [2015.08.10 15:25:19]

답변 너무 감사드립니다~^^

그런데 9i에서는 REGEXP_COUNT가 적용이 안되는건가요?? 적용이 안되는 함수면 다른 방법이 혹시 있을까요??^^;;;


by Taems [2015.08.10 15:36:41]

감사합니다 아발란체님~~ 정말 많은 도움이 됐습니다~^^

즐거운 하루 되세요~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입