orders
およびその他のその他を保持するテーブル上で、このシナリオの SQL ステートメントを構築するのに助けが必要orderID, customerID, itemID
です。列。
テーブルが次のようになっているとします。
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
が始まるたびにインクリメントする 1 つのカウンターと、顧客が購入したアイテムのカウントをループする別のカウンターです。を使用してDENSE_RANK()
おり、最初のカウンターは実行できますが、2 番目のカウンターもどのように処理すればよいですか?
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