Quiero usar Group By en xquery. ¿Puede alguien decirme cómo utilizar Group By en Marklogic?Cómo usar Group By en Marklogic?
Respuesta
La respuesta corta es usar map:map
. Consulte http://docs.marklogic.com/map:map para documentación, y http://blakeley.com/blogofile/archives/560/ para una discusión más larga.
Como alternativa, puede llamar a XSLT usando xdmp:xslt-invoke
o xdmp:xslt-eval
. El procesador XSLT de MarkLogic es compatible con XSLT 2.0, que incluye soporte completo para <xsl:for-each-group>
.
Consulte la respuesta de @mg_kedzie para obtener un ejemplo .. – grtjn
MarkLogic cubre partes de XQuery 3.0 (con su dialecto de 1.0 ml), pero desafortunadamente falta el grupo FLWOR por soporte.
Sin embargo, todavía puede crear programáticamente grupo por sintaxis similar que obtendrá los mismos resultados. Este es un ejemplo de XQuery:
for $d in distinct-values(doc("order.xml")//item/@dept)
let $items := doc("order.xml")//item[@dept = $d]
order by $d
return <department code="{$d}">{
for $i in $items
order by $i/@num
return $i
}</department>
HTH
xquery version "1.0-ml";
let $xml:= <Students>
<Student Country="England" Name="Dan" Age="20" Class="C"/>
<Student Country="England" Name="Maria" Age="20" Class="B" />
<Student Country="Australia" Name="Mark" Age="22" Class="A" />
</Students>
let $xsl:= <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:template match="Students">
<result>
<xsl:for-each-group select="Student" group-by="@Country">
<country>
<xsl:attribute name="name"><xsl:value-of select="fn:current-grouping-key()"/></xsl:attribute>
<xsl:for-each select="fn:current-group()/@Name">
<name><xsl:value-of select="."/></name>
</xsl:for-each>
</country>
</xsl:for-each-group>
</result>
</xsl:template>
</xsl:stylesheet>
return xdmp:xslt-eval($xsl,$xml)
- 1. ¿Cómo funciona GROUP BY?
- 2. GROUP BY en MATLAB
- 3. MySQL GROUP BY fecha al usar datetime
- 4. Limitaciones de GROUP BY
- 5. CakePHP y GROUP BY
- 6. GROUP BY con CursorLoader
- 7. Group (By) in Mongoose?
- 8. MySQL Group By Hours
- 9. Usando GROUP BY en JPA
- 10. Cómo combinar GROUP BY, ORDER BY y HABER
- 11. ¿Es posible usar GROUP BY con variables de vinculación?
- 12. ¿Cómo combinar GROUP BY y ROW_NUMBER?
- 13. ¿Cómo hago la coincidencia parcial `group by`
- 14. SQL Group By Date Conflicts
- 15. GROUP BY/SUM de Shell
- 16. GROUP_CONCAT cambiar GROUP BY orden
- 17. MySQL Group By y HAVING
- 18. GROUP BY/función agregada confusión en SQL
- 19. Tricky GROUP BY problema en ORACLE
- 20. "Más popular" GROUP BY en LINQ?
- 21. ¿es posible usar la columna ORDER BY no en GROUP BY?
- 22. Índice de MySQL para Group By/Order By
- 23. GROUP BY en ACTUALIZACIÓN DE cláusula
- 24. SQL GROUP BY: intervalos en continuidad?
- 25. GROUP BY equivalente para los datos básicos
- 26. GROUP BY después de ORDEN POR
- 27. Cómo sumar columnas en múltiples condiciones en un GROUP BY
- 28. SQL Server: Diferencia entre PARTITION BY y GROUP BY
- 29. El uso de ORDER BY y GROUP BY junto
- 30. Linq to SQL Group By y Suma
no ha utilizado MarkLogic. Pero, por favor, eche un vistazo a http://blakeley.com/blogofile/archives/560/ –
¿La versión de MarkLogic que está utilizando admite el borrador de XQuery 3.0? (Es solo a partir de 3.0 que se agregó soporte 'group by' a las expresiones FLWOR; antes de ese punto, debe hacerlo usted mismo). Puede encontrar un resumen de 'group by' en XQuery 3.0 en http://docs.basex.org/wiki/XQuery_3.0#Group_By –