Образцы вводимых файлов XML и ожидаемый результат находятся внизу, требуется помощь для группировки на основе количества дочерних элементов.
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
<Column>
<ColumnOrder>3</ColumnOrder>
<ColLabel><![CDATA[terst]]></ColLabel>
</Column>
</DashboardXML>
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
<Column>
<ColumnOrder>3</ColumnOrder>
<ColLabel><![CDATA[terst]]></ColLabel>
</Column>
</DashboardXML>
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
</DashboardXML>
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
</DashboardXML>
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
</DashboardXML>
Выше представлен образец XML в качестве входных данных, а ниже - XQuery:
for $b in /DashboardXML where count($b/Column) > 0 order by count($b/Column) return <li>{count($b/Column)} </li>
Запрос дает следующий результат (образец):
<li>3</li>
<li>3</li>
<li>2</li>
<li>4</li>
<li>2</li>
Теперь вопрос в том, как сгруппировать вывод, как показано ниже:
2 = 2 (counts)
3 = 2 (counts)
4 = 1 (counts)
group by
не известно XQuery 1. - person Jens Erat   schedule 29.01.2014