mssql 2014를 사용하고 있습니다
어떠한 수에서 특정 컬럼의 연속된 데이터들만 카운트 하는 쿼리문을 짜고 있습니다.
예를 들어 어떤수가 55이면
기본키 특정컬럼 ~~~ ~~~~
1 49 . .
2 50 . .
3 53 . .
4 54 . .
5 54 . .
이렇게 있으면 카운트 수는 53,54 이렇게 2가 나오게 할려고 합니다(중복은 제외)
특정 컬럼에 있는 데이터 숫자의 크기는 어떠한수보다 항상 작습니다
조언 부탁드립니다 ㅠ
mssql 2014를 사용하고 있습니다
어떠한 수에서 특정 컬럼의 연속된 데이터들만 카운트 하는 쿼리문을 짜고 있습니다.
예를 들어 어떤수가 55이면
기본키 특정컬럼 ~~~ ~~~~
1 49 . .
2 50 . .
3 53 . .
4 54 . .
5 54 . .
이렇게 있으면 카운트 수는 53,54 이렇게 2가 나오게 할려고 합니다(중복은 제외)
특정 컬럼에 있는 데이터 숫자의 크기는 어떠한수보다 항상 작습니다
조언 부탁드립니다 ㅠ
제 개인적인 생각으로는 재귀호출 쓰시면 될 꺼 같아요
WITH TABLE_GROUPING AS (
SELECT NUMBER_COL
FROM TABLE
GROUP BY NUMBER_COL
)
, CTE AS (
SELECT NUMBER_COL
, 1 DEPTH
, CONVERT(VARCHAR(255), NUMBER_COL) NUMBER_COL_PATHFROM TABLE_GROUPING
WHERE NUMBER_COL= (임의의 수:55)-1
UNION ALL
SELECT T.NUMBER_COL
, S.DEPTH+1 DEPTH
, CONVERT(VARCHAR(255), S.NUMBER_COL_PATH + '>' + T.NUMBER_COL) NUMBER_COL_PATH
FROM TABLE_GROUPING T
INNER JOIN CTE S
ON T.NUMBER_COL=S.NUMBER_COL-1
)
SELECT *
FROM CTE
쿼리 돌려보시면 감이 오실꺼에요.
중복 제외라고 하셔서 TABLE_GROUPING 추가했어요.