エンティティとステータスでパーティション化された合計レコードの合計を取得しようとしています。私はいくつかのクエリを作成することでこれを行うことができますが、私の方法よりも単純な方法があるかどうかを知りたいと思います。SQL Serverのレコード数を合計する必要があります
これはデータである:
EntityID StatusDate StatusType Total
10 2017-07-19 H1 3
10 2017-08-18 H1 3
10 2017-09-01 H1 3
10 2017-04-01 H4 23
10 2017-04-01 H4 23
この例でStatusType = H1は、そのステータスを持つ3の合計3つの異なるレコードを、有しています。 StatusType = H4には23種類のレコードがあり、合計23件です(明らかな理由から23行すべてを含むわけではありません)。この列を合計して26を表示したいとします。これは3つのH1ステータスと23のH4ステータスの合計です。
これは私が思い付いたものです:これは、以下を生成
Select a.*
into #test
from
(select t.*, row_number()over(partition by entityid, statustypename, total order by statusdate) as rn
from Table t) a
where rn = 1
:
EntityID StatusDate StatusType Total rn
10 2017-07-19 H1 3 1
10 2017-04-01 H5 23 1
私は、この作成:
EntityID StatusDate StatusType Total NewTotal
10 2017-04-01 H4 23 23
10 2017-07-19 H1 3 26
を:生産
Select a.*,
sum(total) over(partition by entityid order by statusdate)as newtotal
from #test
を
この問題は、これらのすべてのクエリを作成するのが面倒で、元のデータセットからすべての詳細データを失ってしまったということです。これらの合計を得るより効率的な方法はありますか?
あなたの結果セットのように見えますか? H1(3)のカウント、H4のカウント(23)、合計(26)が必要ですか? –
私はH1(3)、H4(23)、合計(26)の数を見たいと思います。 – jackstraw22
これは解決済みですか? –