【发布时间】:2018-02-15 00:03:33
【问题描述】:
我已使用此查询成功获得子元素的计数。
SELECT
raa.ApplicationXML.value('count(Root/ThirdParty/*)', 'Int') as [Bureau Count]
FROM
Table1 raa
但是,我想按子元素的实际名称对该计数进行分组。
我的 XML 看起来像这样:
记录 1:
<Root>
<ThirdParty>
<BureauRed />
<BureauGreen />
<BureauBlue />
</ThirdParty>
</Root>
记录 2:
<Root>
<ThirdParty>
<BureauRed />
<BureauPurple />
<BureauBlue />
</ThirdParty>
</Root>
记录 3:
<Root>
<ThirdParty>
<BureauGreen />
<BureauRed />
<BureauPurple />
<BureauOrange />
<BureauBlue />
</ThirdParty>
</Root>
我不仅需要提取每个局的计数,还需要获取局的名称(BureauRed、BureauGreen、BureauBlue 等)当我尝试按计数分组时出现错误:
GROUP BY 子句中不允许使用 XML 方法。
使用这个查询:
SELECT
raa.ApplicationXML.value('count(Root/ThirdParty/*)', 'Int') as [Bureau Count]
FROM
Table1 raa
GROUP BY
raa.ApplicationXML.value('count(Root/ThirdParty/*)', 'Int')
我如何获得局的计数和名称?
我正在寻找这个结果:
Bureau Count
============ =====
BureauRed 3
BureauGreen 2
BureauBlue 3
BureauPurple 2
BureauOrange 1
【问题讨论】:
-
为这三个记录提供预期结果
-
最好给我们样本数据作为填充的临时表
-
我更新了故事;抱歉,数字没有对齐。
标签: sql sql-server xml