function processMinOrMax(sName, sMinOrMax) {
				var sAlias,
					oDetails = oAggregation.aggregate[sName];

				if (oDetails[sMinOrMax]) {
					sAlias = "UI5" + sMinOrMax + "__" + sName;

					aMinMaxAggregate.push(sName + " with " + sMinOrMax + " as " + sAlias);
					if (mAlias2MeasureAndMethod) {
						mAlias2MeasureAndMethod[sAlias] = {
							measure : sName,
							method : sMinOrMax
						};
					}
				}
			}
Builds the value for a "$apply" system query option based on the given data aggregation
information. The value is "groupby((&lt;groupable_1,...,groupable_N),aggregate(
&lt;aggregatable> with &lt;method> as &lt;alias>,...))" where the "aggregate" part is
only present if aggregatable properties are given and both "with" and "as" are optional.
If <code>mQueryOptions.$filter</code> is given, the resulting "$apply" is extended:
".../filter(&lt;mQueryOptions.$filter>)".
If <code>mQueryOptions.$orderby</code> is given, the resulting "$apply" is extended:
".../orderby(&lt;mQueryOptions.$orderby>)".
If at least one aggregatable property requesting minimum or maximum values is contained,
the resulting "$apply" is extended: ".../concat(aggregate(&lt;alias> with min as
UI5min__&lt;alias>,&lt;alias> with max as UI5max__&lt;alias>,...),identity)". Grand
total values are requested in a similar way.
If <code>mQueryOptions.$skip</code> is given, it is inserted as a transformation:
".../skip(&lt;mQueryOptions.$skip>))". Same for <code>mQueryOptions.$top</code>.
Unnecessary transformations like "identity/" or "skip(0)" are actually avoided.
In case of a "concat", if <code>mQueryOptions.$count</code> is given, it is inserted as
an additional aggregate "$count as UI5__count"; this way it still works with "skip()" and
"top()".

@param {object} oAggregation
  An object holding the information needed for data aggregation; see
  {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}. The properties
  "aggregate", "group", "groupLevels", and "expandTo" are normalized if applicable!
@param {string} [oAggregation.hierarchyQualifier]
  If present, a recursive hierarchy w/o data aggregation is defined and
  {@link _AggregationHelper.buildApply4Hierarchy} is invoked instead.
@param {object} [mQueryOptions={}]
  A map of key-value pairs representing the query string; it is not modified
@param {boolean} [mQueryOptions.$count]
  The value for a "$count" system query option; it is removed from the returned map for a
  follow-up request or in case it is turned into an aggregate "$count as UI5__count"
@param {string} [mQueryOptions.$filter]
  The value for a "$filter" system query option; it is removed from the returned map and
  turned into a "filter()" transformation
@param {string} [mQueryOptions.$$filterBeforeAggregate]
  The value for a filter which is applied before the aggregation; it is removed from the
  returned map and turned into a "filter()" transformation
@param {string} [mQueryOptions.$$filterOnAggregate]
  The value for a filter which is applied on aggregates and thus contains the special
  syntax "$these/aggregate(...)"; it is removed from the returned map and turned into a
  "groupby((...),filter(...)" transformation
@param {boolean} [mQueryOptions.$$leaves]
  Tells whether the count of leaves is requested; it is removed from the returned map; it
  is turned into an aggregate "$count as UI5__leaves" for the first request
@param {string} [mQueryOptions.$orderby]
  The value for a "$orderby" system query option; it is removed from the returned map and
  turned into an "orderby()" transformation
@param {number} [mQueryOptions.$skip]
  The value for a "$skip" system query option; it is removed from the returned map and
  turned into a "skip()" transformation
@param {number} [mQueryOptions.$top]
  The value for a "$top" system query option; it is removed from the returned map and
  turned into a "top()" transformation
@param {number} [iLevel=0]
  The current level; use <code>0</code> to bypass group levels
@param {boolean} [bFollowUp]
  Tells whether this method is called for a follow-up request, not for the first one; in
  this case, neither the count nor grand totals or minimum or maximum values are
  requested again and <code>mAlias2MeasureAndMethod</code> is ignored
@param {object} [mAlias2MeasureAndMethod]
  An optional map which is filled in case an aggregatable property requests minimum or
  maximum values; the alias (for example "UI5min__&lt;alias>") for that value becomes the
  key; an object with "measure" and "method" becomes the corresponding value. Note that
  "measure" holds the aggregatable property's alias in case "3.1.1 Keyword as" is used.
@returns {object}
  A map of key-value pairs representing the query string, including a value for the
  "$apply" system query option if needed; it is a modified copy of
  <code>mQueryOptions</code>, with values removed as described above

@public