シートの交換ごとにシートの総数を取得するにはどうすればよいですか?
例:
select sheetID,
..
from SomeTable
結果は次のようになります。
sheetID
-----------
1000
1000
1000
1000
3000
3000
3000
だから私はこのようなものが欲しい:
select sheetID,
count(sheetID) as TotalsheetCount
from SomeTable
sheetIDの変更ごとにカウントアップを分割する方法がわかりません。
だから私は本質的にこれで終わるでしょう:
sheetID TotalsheetCount
-------- -----------
1000 4
1000 4
1000 4
1000 4
3000 3
3000 3
3000 3
つまり、4は4つの1000があるため、3は3つの3000があるためです。行ごとにそのsheetIDの合計カウントを繰り返したいのですが、繰り返しているのですが、それを提供したいと思います。
更新、これが返信ごとに行ったことですが、以前にそのパーティション数を追加しなかった数に比べて、結果が多すぎます。
select MainTable.sheetID,
COUNT(SomeTable.sheetID)OVER(PARTITION BY SomeTable.sheetID) AS TotalSheetCount
table2.SomeField1,
table2.SomeField1
from MainTable
join (select distinct Sales.SalesKey from SomeLongTableName_Sales) sales on sales.SheetKey = MainTable.sheetKey
left outer join Site on MainTable.SiteKey = Site.SiteKey
join Calendar on sales.Date >= Calendar.StartDate
and sales.Date < Calendar.EndDate
group by SomeTable.sheetID
結合などは私の実際のクエリに対してより現実的ですが、実際のフィールド名とテーブル名を非表示にするためにこの投稿用にフォーマットされています。