タイトルは少し漠然としていますが、何をしたいのかを説明し、データの何が問題なのかを示しましょう。
テーブル内のすべての一意の行のセル値 (サイズ) を合計する必要があります。しかし、私のデータは一種の「悪い」ものです。私は MAPI を使用していますが、MAPI によって返されるメッセージ サイズは、同じメッセージ コンテンツに対して非決定論的に異なる場合があります。
メッセージと添付ファイルという 2 つの同様のテーブル/タスクがあります。SHA1 ハッシュは常に添付ファイルのサイズと相関するため、添付ファイルを処理する方が簡単です。添付データは次のようになります (タブ区切り、Excel 対応):
Hash Size
0x0015A93FFFB1726E6647F94F47F4998AC699A455 97
0x0015A93FFFB1726E6647F94F47F4998AC699A455 97
0x0020CE1810B56CC17F6CFD0A0B6121592825F7E5 85
0x0086077DD1E4AF6A38014AB505105B05F8F5311E 62
0x0086077DD1E4AF6A38014AB505105B05F8F5311E 62
0x00A6510EEDB20A27B00B23416CF755715647A351 85
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
0x011C9258A0E16E25662E8F3BEE8A1462C175C117 87777
これは、テーブル上のすべての重複する添付ファイルの合計サイズを取得するために使用するクエリです。
select
sum(at.sz) as Size
from
(
select distinct
Hash,
sz = Size * ((sum(1) over (partition by Hash)) - 1)
from
Attachment
) as at
(添付ファイルの数から 1 を差し引いて、真の重複カウントを取得します: 合計添付ファイル – 1 = この添付ファイルの複製の数)
ここで、本当の問題はメッセージにあります。MAPI はすべての隠されたがらくたを含むメッセージ サイズを報告し、同一のコンテンツ + 添付ファイルのメッセージ サイズは異なる可能性があるためです (同じハッシュを持つ一部のメッセージでは、サイズが異なることに注意してください)。
Hash Size
0x001B05F4D041EB0E61ADDEA45A1F7AFAD5C088AB 3248
0x001B05F4D041EB0E61ADDEA45A1F7AFAD5C088AB 3248
0x001B05F4D041EB0E61ADDEA45A1F7AFAD5C088AB 3260
0x001B05F4D041EB0E61ADDEA45A1F7AFAD5C088AB 3260
0x001B05F4D041EB0E61ADDEA45A1F7AFAD5C088AB 3264
0x001B05F4D041EB0E61ADDEA45A1F7AFAD5C088AB 3266
0x00510D4B3A9D42C8D8E236950B7FBBD5FB716698 12040
0x00D92C8EB7E718EF418BC9D843D760FD1F4B208B 3657
0x00D92C8EB7E718EF418BC9D843D760FD1F4B208B 3659
0x00D92C8EB7E718EF418BC9D843D760FD1F4B208B 3671
0x011683250CC8D779EC3F33C23209C26E27E25E73 5143
0x016D424B6B4B7DDB4856D1660ECBFEBDD3ECACCA 3531
0x016D424B6B4B7DDB4856D1660ECBFEBDD3ECACCA 3543
0x016D424B6B4B7DDB4856D1660ECBFEBDD3ECACCA 3549
0x016D424B6B4B7DDB4856D1660ECBFEBDD3ECACCA 3559
このようなデータでは、個別のペアの数が常に 1 であるとは限らないため、上記のクエリは意味のあるものを返すことができません。
同じハッシュのサイズのいずれかを選択して、合計で使用しても問題ありません。