orderID, customerID, itemID
및 기타 항목이 들어있는 orders
테이블을 통해이 시나리오에 대한 SQL 문을 작성하는 데 도움이 필요합니다. 열. 추가 열이 나는 원하는 무엇SQL Server : 열로 그룹화 된 DENSE_RANK() 쿼리?
OrderID CustomerID ItemID Details
1 1234 543 abc
2 1234 643 xxx
3 1234 743 try
4 5678 743 try
5 5678 999 iuy
6 5678 643 xxx
이를 통해 상품을 계산 루프 하나 개의 새로운 customerID
이 시작마다 증가 카운터, 또 다른을 가지고 :
DENSE_RANK()
을 사용하고 있으며 첫 번째 카운터를 수행 할 수 있지만 두 번째 카운터도 어떻게 처리합니까?
SELECT
DENSE_RANK() OVER (ORDER BY CustomerID) as Counter,
*
FROM
Orders
ORDER BY
CustomerID ASC
이 나를 제공 :
Counter OrderID CustomerID ItemID Details
1 1 1234 543 abc
1 2 1234 643 xxx
1 3 1234 743 try
2 4 5678 743 try
2 5 5678 999 iuy
2 6 5678 643 xxx
그리고 마지막으로는, 내가 원하는 것은 Counter2
열이 어떻게 든 추가됩니다
Counter Counter2 OrderID CustomerID ItemID Details
1 1 1 1234 543 abc
1 2 2 1234 643 xxx
1 3 3 1234 743 try
2 1 4 5678 743 try
2 2 5 5678 999 iuy
2 3 6 5678 643 xxx
아, 난 그냥 알아 냈 : ROW_NUMBER()을 (CustomerID를 ORDER BY 항목 ID BY PARTITION) OVER COUNTER2로 –