[xquery-talk] Using Sum and Count
Michael Kay
mike at saxonica.com
Tue Jan 15 23:20:35 PST 2008
When you use an element constructor in XQuery, for example
<A>....</A>
the text between the tags can contain literal text:
<A>Here is some output</A>
or expressions written within curly braces:
<A>The answer is {2+40}</A>
A common mistake is to omit the curly braces. If you write
<A>2+40</A>
the output will not be <A>42</A>, but <A>2+40</A>
You have made this mistake in a rather unusual way here:
<statistics>sum({count($head)})</statistics>
Here sum() is taken as literal text, not as an expression, because it is
outside the curly braces.
However, changing it to
<statistics>{sum(count($head))}</statistics>
would not solve the problem, because count() returns a single number, and
summing a set of numbers that only contains one number doesn't do anything
very useful (though it works). Also, $head is iterating over the items in a
sequence, so count($head) is always one.
Unfortunately though I don't really know what you were trying to compute, so
I can't correct it for you.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: talk-bounces at x-query.com
> [mailto:talk-bounces at x-query.com] On Behalf Of Wei, Alice J.
> Sent: 15 January 2008 22:58
> To: talk at x-query.com
> Subject: [xquery-talk] Using Sum and Count
>
> Hi, XQueriers:
>
> I have an XML here as follows:
>
> <project>
>
> <projection><!--More Markup--></projection>
> <projection><!--More Markup--></projection> <!--More
> markup--> </project>
>
> My XQuery:
>
> declare boundary-space preserve;
>
> for $project in
> doc("http://chausie.slis.indiana.edu:8080/exist/rest//db/resum
> e/resume.xml"),
> $head in $project//projection
> return
> <statistics>sum({count($head)})</statistics>
>
> I intend to get the result of how many items in <projection>,
> but when I execute it, it only gives me lots and lots of
> <statistics>sum(1)</statistics> until the document is finished.
>
> Can any expert out there help me out and tell me what is the
> matter with my code?
>
> Thanks to those who can help.
>
> Alice.
>
> ======================================================
> Alice Wei
> MIS 2008
> School of Library and Information Science Indiana University
> Bloomington ajwei at indiana.edu
>
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk
More information about the talk
mailing list