UPDATE :
난 그냥 아직도 많은 이해가되지 않습니다 질문을 다시 읽었습니다,하지만 난 여기에 요구되는 질문에 대답 아니에요 결론을했습니다, 그러나 나는 약간의 길에서 OP를 돕는 경우를 대비하여 당분간 여기에 남겨 둘 것이다.
그래서 나는 당신이 무엇을 찾고 있는지 알았습니다. 그리고 데이터를 약간 변경하여 작업 샘플을 만들었습니다. 따라서 110001~111000
값이 110001~111000
인 곳에서 샘플 값을 1000
으로 수정했습니다. 이러한 값이 이와 같이 표시되는 이유와 사용 방법에 대한 설명을 제공하지 않았기 때문입니다.
이 샘플은 당신에게 값이 1000
참조로 나누어 여부에 따라 원하는 amount
값을 얻을 수있는 기본 동작을 제공합니다
% (Modulus) (Transact-SQL)
가 반환을 한 숫자를 나머지 숫자로 나눈 값.
샘플
CREATE TABLE #temp
(post_no INT, id INT, region NVARCHAR(1));
INSERT INTO #temp
(post_no, id, region)
VALUES
(1000, 1, 'A'),
(2000, 2, 'A'),
(3000, 3, 'A'),
(3222, 4, 'A'),
(1000, 5, 'B'),
(2000, 6, 'B'),
(3000, 7, 'B'),
(4000, 8, 'B'),
(4174, 9, 'B');
SELECT t.post_no,
t.id,
t.region,
CASE WHEN t.post_no % 1000 = 0
THEN post_no/ROW_NUMBER() OVER (PARTITION BY t.region ORDER BY id)
ELSE t.post_no % 1000
END AS amount
FROM #temp AS t;
DROP TABLE #temp;
결과 :는
post_no id region amount
----------- ----------- ------ --------------------
1000 1 A 1000
2000 2 A 1000
3000 3 A 1000
3222 4 A 222
1000 5 B 1000
2000 6 B 1000
3000 7 B 1000
4000 8 B 1000
4174 9 B 174
주 :이 더욱 단순화 될 수
단순히 1000 돌아 여기서 N umber는 1000으로 나눌 수 있지만 안전을 위해 위에서 둡니다. 대체 코드는 다음과 같습니다.
사용중인 라이브러리 또는 DB에서 데이터를 가져 오는 방법을 제공하지 않았기 때문에 여기있는 것이 최선의 방법입니다. COUNT() 함수를 사용하고 싶습니다. 'SELECT COUNT (post_no) FROM table_name 어디에서 시작 하나