[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