asterixdb-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Malarout, Namrata (398M-Affiliate)" <>
Subject Re: Aggregate function on collection of ordered list
Date Mon, 07 Dec 2015 17:57:20 GMT

Wail, thanks for looking into it and explaining the use of for. I will be following the issue.
However, working with my sample data  may be a little more tricky. I have a couple hundred
of records which contain such nested ordered lists. I would like to perform an aggregation
over all the values across all the records. Any suggestions on how to do it?

Mike, thanks for understanding :) Appreciate all the help.

From: Michael Carey <<>>
Reply-To: "<>"
Date: Monday, December 7, 2015 at 7:28 AM
To: "<>"
"<>" <<>>
Subject: Re: Aggregate function on collection of ordered list

+ Looping in the dev list to try and get fast attention to the fix, if it's easy!
(I know that Namarata's under time pressure in a NASA bakeoff exercise. :-))

On 12/7/15 4:59 AM, Wail Alkowaileet wrote:
It's an easy fix...
Thanks for reporting that.

I reported it in

On Mon, Dec 7, 2015 at 3:33 PM, Wail Alkowaileet <<>>
Hi Namrata,

The best way to think of for in lists is to think it works as foreach in java.
So ..
in your first query, it should be like:

let $l := [[1.2, 2.3, 3.4],[6,3,7,2]]
for $x in $l // for each list in the outer list
return {"avg”: avg($y)}

However, I tried it and it seems that there is a bug for applying aggregation on nested open

I'll look into it to see if it's an easy fix

On Mon, Dec 7, 2015 at 2:52 PM, Malarout, Namrata (398M-Affiliate) <<>>

I am trying to perform avg, sum, min and max functions on a collection of ordered lists. An
example is:
 let $l := [[1.2, 2.3, 3.4],[6,3,7,2]]

return {"avg”: avg($l)}

I have tried both avg and sql-avg. But I get the following error:
 Cannot compute AVG for values of type ORDEREDLIST [NotImplementedException].

I’ve attached the sample data that I’m working with (sample.adm). My AQL query to find
the average of analysis_error looks like:

use dataverse Test;

for $f in dataset sample

where not(is-null($f.analysis_error))

return avg($f.analysis_error);

The error seen is as follows:

Type of argument in function-call: asterix:avg, Args:[function-call: asterix:field-access-by-name,
Args:[%0->$$0, AString: {analysis_error}]] should be a collection type instead of ANY [AlgebricksException]

I would like to know what is the correct syntax to find the average. Appreciate the help.




Wail Alkowaileet


Wail Alkowaileet

View raw message