Voglio usare Group By in xquery. Qualcuno può dirmi come usare Group By in Marklogic?Come usare Group By in Marklogic?
risposta
La risposta breve è utilizzare map:map
. Vedere http://docs.marklogic.com/map:map per la documentazione e http://blakeley.com/blogofile/archives/560/ per una discussione più lunga.
In alternativa, è possibile chiamare XSLT utilizzando xdmp:xslt-invoke
o xdmp:xslt-eval
. Il processore XSLT di MarkLogic supporta XSLT 2.0, che include il supporto completo per <xsl:for-each-group>
.
Vedere la risposta di @mg_kedzie per un esempio .. – grtjn
MarkLogic copre parti di XQuery 3.0 (con il suo dialetto da 1,0 ml), ma sfortunatamente manca il gruppo FLWOR per supporto.
Tuttavia, è comunque possibile creare una sintassi di gruppo simile a quella che otterrà gli stessi risultati. Ecco un esempio 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. Come funziona GROUP BY?
- 2. GROUP BY in MATLAB
- 3. Group by In HBase
- 4. Perché non dovresti usare DISTINCT quando potresti usare GROUP BY?
- 5. Multiple group-by in Elasticsearch
- 6. Limitazioni di GROUP BY
- 7. Group By, Somma in LINQ
- 8. GROUP BY in UPDATE FROM
- 9. CakePHP e GROUP BY
- 10. Come utilizzare GROUP BY in Firebird
- 11. Utilizzando ORDER BY e GROUP BY insieme
- 12. funzione GAL e GROUP BY
- 13. Django: GROUP BY due valori
- 14. PostgreSQL MAX e GROUP BY
- 15. Applica WHERE dopo GROUP BY
- 16. Mysql UNION e GROUP BY
- 17. MySQL selezionare GROUP BY ordine
- 18. GROUP BY/SUM da shell
- 19. GROUP BY MAX dover data
- 20. Come combinare GROUP BY e ROW_NUMBER?
- 21. Utilizzo di GROUP BY in JPA
- 22. Seleziona * group by in mongo aggregation
- 23. Espressione lambda Group by in C#
- 24. group by in R, ddply con weighted.mean
- 25. GROUP BY problemi in Google Big Query
- 26. GROUP BY chiave esterna o chiave primaria?
- 27. GROUP BY equivalente per Core Data
- 28. Django equivalente di COUNT con GROUP BY
- 29. clausola di Oracle CONNECT BY dopo clausola GROUP BY
- 30. SQL Server: Differenza tra PARTITION BY e GROUP BY
non hanno utilizzato Mark Logic. Ma per favore date un'occhiata a http://blakeley.com/blogofile/archives/560/ –
La versione di MarkLogic che state usando supporta la bozza XQuery 3.0? (È solo a partire dal 3.0 che il supporto 'group by' è stato aggiunto alle espressioni FLWOR: prima di quel punto, devi farlo tu stesso). Un riassunto di 'group by' in XQuery 3.0 può essere trovato su http://docs.basex.org/wiki/XQuery_3.0#Group_By –