Hi,
I have some data with the below format.
<student>
<name>Mark</name>
<grade>A</grade>
<year>2016</year>
</student>
I need to find out in between 2011 to 2016, how many students got grade A, how
many got grade B, how many got grade C.
I initially wrote a query like this.
xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";
for $grade in
cts:element-values(
xs:QName('grade'),
(),
("frequency-order"),
cts:and-query((
cts:element-range-query(xs:QName('year'), '>=', xs:int(2011)),
cts:element-range-query(xs:QName('year'), '<=', xs:int(2016)),
cts:element-range-query(xs:QName('grade'), '=', ('A', 'B', 'C'))
))
)
return concat("grade :", $grade, " students with this grade :" ,
cts:frequency($grade))
I was expecting only grade A, B and C in the output but to my surprise, I am
getting other grades as well like D, E, F and so on.
What am I missing here and is there any efficient way to achieve this? I have
around 160 million records.
-Sudheer
_______________________________________________
General mailing list
[email protected]
Manage your subscription at:
http://developer.marklogic.com/mailman/listinfo/general