2列のテーブルがあります。外部キー識別子と XML 列。XML 列には、異物に関する詳細が含まれています。たとえば、テーブルに次のものが含まれているとします。
1 | <details><software name="iTunes" /></details>
1 | <details><software name="iPhoto" /><software name="iTunes" /></details>
2 | <details><software name="iTunes" /><software name="MSSQL" /></details>
2 | <details><software name="Visual Studios" /></details>
エンティティごとの「ソフトウェア」の一意の数を取得するクエリを実行するにはどうすればよいですか? たとえば、期待される結果は次のようになります。
1 | 2
2 | 3
列 1 は識別子で、列 2 は一意の合計です。
私が取得できた最も近いものは、次のクエリです。
SELECT
DISTINCT
id,
details.value('count(/details/software)', 'int') AS SoftwareCount
FROM
detailsTable
しかし、それはどこにも役に立ちません。(検出されたすべてのカウントに対して一意の行が表示されます)。