Edit

Share via


Basic URI parser

Applies To: # OData Webapi for Webapi supported Green circular checkmark icon to indicate a success. OData AspNet WebApi V6

ODataLib 6.15, we introduced the basic Uri parser support for aggregations, this is first step for us to support aggregations, Issues and PR to make this support better is very welcome, details about aggregation in spec can be found here.

Aggregate

The aggregate transformation takes a comma-separated list of one or more aggregate expressions as parameters and returns a result set with a single instance, representing the aggregated value for all instances in the input set.

Examples

GET ~/Sales?$apply=aggregate(Amount with sum as Total)

GET ~/Sales?$apply=aggregate(Amount with min as MinAmount)

Open Issue

#463

Groupby

The groupby transformation takes one or two parameters and Splits the initial set into subsets where all instances in a subset have the same values for the grouping properties specified in the first parameter, Applies set transformations to each subset according to the second parameter, resulting in a new set of potentially different structure and cardinality, Ensures that the instances in the result set contain all grouping properties with the correct values for the group, Concatenates the intermediate result sets into one result set.

Examples

GET ~/Sales?$apply=groupby((Category/CategoryName))

GET ~/Sales?$apply=groupby((ProductName), aggregate(SupplierID with sum as SupplierID))

Apply with other QueryOptions

Apply queryoption will get parse first and we can add filter, orderby, top, skip with apply.

Examples

$apply=groupby((Address/City))&$filter=Address/City eq 'redmond'

$apply=groupby((Name))&$top=1

$apply=groupby((Address/City))&$orderby=Address/City

Test

All the support scenarios can be found in WebAPI case, ODL case.