QGIS API Documentation
3.22.4-Białowieża (ce8e65e95e)
|
Utility class for calculating aggregates for a field (or expression) over the features from a vector layer. More...
#include <qgsaggregatecalculator.h>
Classes | |
struct | AggregateInfo |
Structured information about the available aggregates. More... | |
struct | AggregateParameters |
A bundle of parameters controlling aggregate calculation. More... | |
Public Types | |
enum | Aggregate { Count , CountDistinct , CountMissing , Min , Max , Sum , Mean , Median , StDev , StDevSample , Range , Minority , Majority , FirstQuartile , ThirdQuartile , InterQuartileRange , StringMinimumLength , StringMaximumLength , StringConcatenate , GeometryCollect , ArrayAggregate , StringConcatenateUnique } |
Available aggregates to calculate. More... | |
Public Member Functions | |
QgsAggregateCalculator (const QgsVectorLayer *layer) | |
Constructor for QgsAggregateCalculator. More... | |
QVariant | calculate (Aggregate aggregate, const QString &fieldOrExpression, QgsExpressionContext *context=nullptr, bool *ok=nullptr, QgsFeedback *feedback=nullptr) const |
Calculates the value of an aggregate. More... | |
QString | delimiter () const |
Returns the delimiter used for joining values with the StringConcatenate aggregate. More... | |
QString | filter () const |
Returns the filter which limits the features used during the aggregate calculation. More... | |
QString | lastError () const |
Returns the last error encountered during the aggregate calculation. More... | |
const QgsVectorLayer * | layer () const |
Returns the associated vector layer. More... | |
void | setDelimiter (const QString &delimiter) |
Sets the delimiter to use for joining values with the StringConcatenate aggregate. More... | |
void | setFidsFilter (const QgsFeatureIds &fids) |
Sets a filter to limit the features used during the aggregate calculation. More... | |
void | setFilter (const QString &filterExpression) |
Sets a filter to limit the features used during the aggregate calculation. More... | |
void | setParameters (const AggregateParameters ¶meters) |
Sets all aggregate parameters from a parameter bundle. More... | |
Static Public Member Functions | |
static QList< QgsAggregateCalculator::AggregateInfo > | aggregates () |
Structured information for available aggregates. More... | |
static QString | displayName (Aggregate aggregate) |
Returns the friendly display name for a aggregate. More... | |
static Aggregate | stringToAggregate (const QString &string, bool *ok=nullptr) |
Converts a string to a aggregate type. More... | |
Utility class for calculating aggregates for a field (or expression) over the features from a vector layer.
It is recommended that QgsVectorLayer::aggregate() is used rather then directly using this class, as the QgsVectorLayer method can handle delegating aggregate calculation to a data provider for remote calculation.
Definition at line 44 of file qgsaggregatecalculator.h.
Available aggregates to calculate.
Not all aggregates are available for all field types.
Enumerator | |
---|---|
Count | Count. |
CountDistinct | Number of distinct values. |
CountMissing | Number of missing (null) values. |
Min | Min of values. |
Max | Max of values. |
Sum | Sum of values. |
Mean | Mean of values (numeric fields only) |
Median | Median of values (numeric fields only) |
StDev | Standard deviation of values (numeric fields only) |
StDevSample | Sample standard deviation of values (numeric fields only) |
Range | Range of values (max - min) (numeric and datetime fields only) |
Minority | Minority of values. |
Majority | Majority of values. |
FirstQuartile | First quartile (numeric fields only) |
ThirdQuartile | Third quartile (numeric fields only) |
InterQuartileRange | Inter quartile range (IQR) (numeric fields only) |
StringMinimumLength | Minimum length of string (string fields only) |
StringMaximumLength | Maximum length of string (string fields only) |
StringConcatenate | Concatenate values with a joining string (string fields only). Specify the delimiter using setDelimiter(). |
GeometryCollect | Create a multipart geometry from aggregated geometries. |
ArrayAggregate | Create an array of values. |
StringConcatenateUnique | Concatenate unique values with a joining string (string fields only). Specify the delimiter using setDelimiter(). |
Definition at line 67 of file qgsaggregatecalculator.h.
QgsAggregateCalculator::QgsAggregateCalculator | ( | const QgsVectorLayer * | layer | ) |
Constructor for QgsAggregateCalculator.
layer | vector layer to calculate aggregate from |
Definition at line 28 of file qgsaggregatecalculator.cpp.
|
static |
Structured information for available aggregates.
Definition at line 298 of file qgsaggregatecalculator.cpp.
QVariant QgsAggregateCalculator::calculate | ( | QgsAggregateCalculator::Aggregate | aggregate, |
const QString & | fieldOrExpression, | ||
QgsExpressionContext * | context = nullptr , |
||
bool * | ok = nullptr , |
||
QgsFeedback * | feedback = nullptr |
||
) | const |
Calculates the value of an aggregate.
aggregate | aggregate to calculate |
fieldOrExpression | source field or expression to use as basis for aggregated values. If an expression is used, then the context parameter must be set. |
context | expression context for evaluating expressions |
ok | if specified, will be set to true if aggregate calculation was successful. If ok is false then lastError() can be used to retrieve a descriptive error message. |
feedback | optional feedback argument for early cancellation (since QGIS 3.22). If set, this will take precedence over any feedback object set on the expression context. |
Definition at line 52 of file qgsaggregatecalculator.cpp.
|
inline |
Returns the delimiter used for joining values with the StringConcatenate aggregate.
Definition at line 175 of file qgsaggregatecalculator.h.
|
static |
Returns the friendly display name for a aggregate.
Definition at line 246 of file qgsaggregatecalculator.cpp.
|
inline |
Returns the filter which limits the features used during the aggregate calculation.
Definition at line 162 of file qgsaggregatecalculator.h.
|
inline |
Returns the last error encountered during the aggregate calculation.
Definition at line 130 of file qgsaggregatecalculator.h.
const QgsVectorLayer * QgsAggregateCalculator::layer | ( | ) | const |
Returns the associated vector layer.
Definition at line 34 of file qgsaggregatecalculator.cpp.
|
inline |
Sets the delimiter to use for joining values with the StringConcatenate aggregate.
delimiter | string delimiter |
Definition at line 169 of file qgsaggregatecalculator.h.
void QgsAggregateCalculator::setFidsFilter | ( | const QgsFeatureIds & | fids | ) |
Sets a filter to limit the features used during the aggregate calculation.
If an expression filter is set, it will override this filter.
fids | feature ids for feature filtering, and empty list will return no features. |
Definition at line 46 of file qgsaggregatecalculator.cpp.
|
inline |
Sets a filter to limit the features used during the aggregate calculation.
filterExpression | expression for filtering features, or empty string to remove filter |
Definition at line 148 of file qgsaggregatecalculator.h.
void QgsAggregateCalculator::setParameters | ( | const AggregateParameters & | parameters | ) |
Sets all aggregate parameters from a parameter bundle.
parameters | aggregate parameters |
Definition at line 39 of file qgsaggregatecalculator.cpp.
|
static |
Converts a string to a aggregate type.
string | string to convert |
ok | if specified, will be set to true if conversion was successful |
Definition at line 188 of file qgsaggregatecalculator.cpp.