MIN¶
The Min
aggregate function allows you to retrieve the smallest value for a set of objects. To use the function, include Min(columnNameInDatabase)
into the list of properties requested from the server. For example, the following query retrieves the smallest box office earnings from the Movies
data table:
GET https://xxxx.backendless.app/api/data/Movie?props=Min(totalBoxOffice)
The query returns the following result, notice the min
property in the returned object. The value of the property is the smallest amount in the totalBoxOffice
column for all movies in the database:
[
{
"min": 1341511219,
"___class": "Movie",
}
]
The function can be applied not only to the columns containing numerical values. For example, the following query retrieves the "smallest" alphanumeric value for the a movie title:
GET https://xxxx.backendless.app/api/data/Movie?props=Min(title)
The smallest value for the alphanumeric columns is determined by the alphabetical order of the characters. As a result, the movie starting with "A" is the one returned by the server:
[
{
"min": "Avatar",
"___class": "Movie",
}
]
Using Alias¶
To change the name of the returned property from min
to a custom name, use the following syntax:
Min( columnNameInDatabase ) as customPropertyName
For example, the following query returns the minimum amount in the minimumTotal
property:
Important
The value must be URL-encoded. The spaces are replaced with %20:
GET https://xxxx.backendless.app/api/data/Movie?props=Min(totalBoxOffice)%20as%20minimumTotal
The response for the query now contains the minimumTotal
property:
[
{
"minimumTotal": 1341511219,
"___class": "Movie",
}
]
Grouping Results¶
Results in the response can be grouped by values from another column. To request grouping of the results, add the groupBy
parameter to the request with the value containing the name of the column. For example, the following request returns the minimum earnings value for the movies in the database grouped by the year the movies were released:
GET https://xxxx.backendless.app/api/data/Movie?props=Min(totalBoxOffice),yearReleased&groupBy=yearReleased
The response for this request contains average earning values for the movies grouped by the release year:
[
{
"min": 2207615668,
"yearReleased": 1997,
"___class": "Movie",
},
{
"min": 2783918982,
"yearReleased": 2009,
"___class": "Movie",
},
{
"min": 1341511219,
"yearReleased": 2011,
"___class": "Movie",
},
{
"min": 1519479547,
"yearReleased": 2012,
"___class": "Movie",
},
{
"min": 1408218722,
"yearReleased": 2015,
"___class": "Movie",
}
]
Sorting¶
The results can be sorted using the sortBy
parameter. For example, results for the following request will be sorted by the values in the yearReleased
column in the descending order:
GET https://xxxx.backendless.app/api/data/Movie?props=Min(totalBoxOffice),yearReleased&groupBy=yearReleased&sortBy=yearReleased%20DESC
To sort results by the aggregated value, assign a custom name to the column and sort by that name:
GET https://xxxx.backendless.app/api/data/Movie?props=Min(totalBoxOffice)%20as%20minTotal,yearReleased&groupBy=yearReleased&sortBy=minTotal