我有一个带有 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,状态 1,Zeile 5
Ungültiger Spaltenname '错误'。
这意味着类似:无效的列名“错误”
我在这里也试过这个:
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 附近的语法错误
我该如何解决这个问题?