次のような XML 列 (MetaData と呼ばれる) を持つテーブルがあります。
<props>
<prop name="bytes" value="194" />
<prop name="error" value="File is a text file" />
<prop name="mime-type" value="text/plain " />
</props>
ここで、これで選択できるいくつかの異なるエラーがあります。
SELECT MetaData.value('(/props/prop[@name="error"]/@value)[1]', 'varchar(50)') Error,
MetaData.value('(/props/prop[@name="mime-type"]/@value)[1]', 'varchar(50)') MimeType,
*
FROM source
WHERE MetaData.exist('/props/prop[@name="error"]') = 1
ここで、エラーが発生する頻度を数えたいと思います。
SELECT MetaData.value('(/props/prop[@name="error"]/@value)[1]', 'varchar(50)') Error,
COUNT(*) Count
FROM source
WHERE MetaData.exist('/props/prop[@name="error"]') = 1
GROUP BY Error
しかし、エラーメッセージが表示されます:
Meldung 207、Ebene 16、Status 1、Zeile 5
Ungültiger Spaltenname 'Error'.
これは次のような意味です: 無効な列名 'エラー'
ここでもこれを試しました:
Select Error, COUNT(Error) FROM (
SELECT MetaData.value('(/props/prop[@name="error"]/@value)[1]', 'varchar(50)') Error
FROM videos
WHERE MetaData.exist('/props/prop[@name="error"]') = 1
)
GROUP BY Error
しかし、それは次のようにクラッシュします:
Meldung 156、Ebene 15、Status 1、Zeile 6
Falsche Syntax in der Nähe des GROUP-Schlüsselworts.
これは次のような意味です: キーワード GROUP 付近の構文エラー
どうすればその問題を解決できますか?