

{"id":43430,"date":"2018-12-01T12:28:33","date_gmt":"2018-12-01T06:58:33","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=43430"},"modified":"2018-12-01T13:47:56","modified_gmt":"2018-12-01T08:17:56","slug":"qlik-sense-aggregation-functions","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/","title":{"rendered":"Aggregation Functions in Qlik Sense &#8211; Types of Functions"},"content":{"rendered":"<h2><span style=\"font-weight: 400\">1. Objective<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In our last <strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-tutorial\/\">Qlik Sense tutorial<\/a><\/strong>, we discussed <a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-geospatial-functions\/\"><strong>Qlik Sense Geospatial Functions<\/strong><\/a>. The aggregation function takes in multiple values and returns an aggregated value as a result. There are two categories of aggregation functions based on its use. We use Qlik Sense Aggregation Functions in data load script and in chart expressions.\u00a0<\/span><\/p>\n<div id=\"attachment_43484\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-43484\" class=\"size-full wp-image-43484\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg\" alt=\"Aggregation Functions in Qlik Sense - Types of Functions\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-43484\" class=\"wp-caption-text\">Aggregation Functions in Qlik Sense &#8211; Types of Functions<\/p><\/div>\n<p>So, let&#8217;s start Qlik Sense Aggregation Functions Tutorial.<\/p>\n<h2>2. Qlik Sense\u00a0<span style=\"font-weight: 400\">Aggr() Chart Function<\/span><\/h2>\n<p><span style=\"font-weight: 400\">The aggr() function is a chart function which performs advanced aggregation i.e. aggregation within a function. It returns an array of values as a result of aggregation.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-line-chart\/\">You must read about Qlik Sense Line Chart<\/a><\/strong><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Aggr({SetExpression}[DISTINCT][NODISTINCT]expr,StructuredParameter{, StructuredParameter})<\/pre>\n<p><span style=\"font-weight: 400\">Where, <\/span><span style=\"font-weight: 400\">expr<\/span><span style=\"font-weight: 400\"> is the expression having the aggr() function.<\/span><\/p>\n<p><span style=\"font-weight: 400\">The <\/span><span style=\"font-weight: 400\">StructuredParameter<\/span><span style=\"font-weight: 400\"> is the name of the dimension or measure from which the values will be taken and sorted. We mention it in the expression as, (Dimension(Sort-type, Ordering)).<\/span><\/p>\n<p><span style=\"font-weight: 400\">The <\/span><span style=\"font-weight: 400\">SetExpression<\/span><span style=\"font-weight: 400\"> parameter sets the set of records upon which the aggregation should be applied. If you do not mention any such set expression value, then the function applies aggregation on the set of possible records as per the selections made.<\/span><\/p>\n<p><span style=\"font-weight: 400\">DISTINCT<\/span><span style=\"font-weight: 400\"> will return one result for each value upon which aggregation is applied.<\/span><\/p>\n<p><span style=\"font-weight: 400\">NODISTINCT<\/span><span style=\"font-weight: 400\"> will return an array of values as a result for each value upon which aggregation is applied. <\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>For example,<\/strong> <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ProductData:\r\nLOAD * inline [\r\nCustomer|Product|UnitSales|UnitPrice\r\nArman|AA|4|16\r\nArman|AA|10|15\r\nArman|BB|9|9\r\nHimesh|BB|5|10\r\nHimesh|CC|2|20\r\nHimesh|DD|25|25\r\nParth|AA|8|15\r\nParth|CC||19\r\n] (delimiter is '|');<\/pre>\n<p><span style=\"font-weight: 400\">The expression, <\/span><span style=\"font-weight: 400\">Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))<\/span><span style=\"font-weight: 400\"> will return three values each as the sum of sales for each customer (Arman, Himesh, Parth) i.e. 295, 715, and 120 after applying the Aggr() function on the individual values. Upon this result of three values, Avg() function is applied which returns the average of the three values, 376.6667.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">3. Types of Qlik Sense Aggregation Functions<\/span><\/h2>\n<div id=\"attachment_43480\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Types-of-Qlik-Sense-Aggregation-Functions-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-43480\" class=\"size-full wp-image-43480\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Types-of-Qlik-Sense-Aggregation-Functions-01.jpg\" alt=\"Types of Qlik Sense Aggregation Functions\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Types-of-Qlik-Sense-Aggregation-Functions-01.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Types-of-Qlik-Sense-Aggregation-Functions-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Types-of-Qlik-Sense-Aggregation-Functions-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Types-of-Qlik-Sense-Aggregation-Functions-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Types-of-Qlik-Sense-Aggregation-Functions-01-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Types-of-Qlik-Sense-Aggregation-Functions-01-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-43480\" class=\"wp-caption-text\">Types of Qlik Sense Aggregation Functions<\/p><\/div>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-formatting-functions\/\">Have a look at Qlik Sense Formatting Functions<\/a><\/strong><\/p>\n<h3><span style=\"font-weight: 400\">a. Basic Qlik Sense Aggregation Functions<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The basic aggregation functions are the most commonly used aggregation functions.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">FirstSortedValue<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function sorts values in a field based on another field loaded in the same script. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">FirstSortedValue([ distinct ] value, sort-weight [, rank ])<\/pre>\n<p><span style=\"font-weight: 400\">Where, <\/span><span style=\"font-weight: 400\">value<\/span><span style=\"font-weight: 400\"> is the field or dimension which you want to sort based on the values provided in the sort-weight parameter. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Sort-weight<\/span><span style=\"font-weight: 400\"> is the field whose values will be sorted from lowest to highest.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Rank<\/span><span style=\"font-weight: 400\"> sets the nth value from the list of sorted values which you want the function to return. <\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>For example,<\/strong> using the sample data given below we will apply the function and see how it works. <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Temp:\r\nLOAD * inline [\r\nCustomer|Product|UnitSales\r\nArman|AA|10\r\nArman|AA|18\r\nArman|BB|9\r\nArman|CC|2\r\nChandrika|AA|4\r\nChandrika|BB|5\r\nChandrika|DD|25\r\nDarsh|AA|8\r\nDarsh|CC|19\r\nPriya|AA|16\r\nPriya|AA|16\r\nPriya|DD|10\r\n] (delimiter is '|');<\/pre>\n<p><span style=\"font-weight: 400\">Now, we will apply the firstsortvalue function on it. <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">FirstSortedValue:\r\nLOAD\r\nCustomer,FirstSortedValue(Product,UnitSales)\r\nas CustomerRank\r\nResident Temp Group By Customer;<\/pre>\n<p><span style=\"font-weight: 400\">This returns a table named <\/span><i><span style=\"font-weight: 400\">FirstSortedValue<\/span><\/i><span style=\"font-weight: 400\"> with a field named <\/span><i><span style=\"font-weight: 400\">CustomerRank<\/span><\/i><span style=\"font-weight: 400\"> and <\/span><i><span style=\"font-weight: 400\">Customer<\/span><\/i><span style=\"font-weight: 400\">. <\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Customer<\/b><\/td>\n<td><b>CustomerRank<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Arman<\/span><\/td>\n<td><span style=\"font-weight: 400\">CC<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Chandrika<\/span><\/td>\n<td><span style=\"font-weight: 400\">AA<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Darsh<\/span><\/td>\n<td><span style=\"font-weight: 400\">AA<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Priya<\/span><\/td>\n<td><span style=\"font-weight: 400\">DD<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400\">Here, the firstsortvalue() function sorts the UnitSales values based on Customers from lowest to highest. The smallest value of UnitSales for each customer is taken and returned as smallest to highest. That is, CC=2 is the lowest for Arman, then AA=4 is the second lowest for Chandrika, AA=8 for Darsh and DD=10 is the lowest for Priya but largest of the four customers. <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Max<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the highest value amongst the evaluated values of a field. You can get a specific nth value from the returned values using the <\/span><span style=\"font-weight: 400\">rank<\/span><span style=\"font-weight: 400\"> parameter. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<p><b>Max(<\/b><span style=\"font-weight: 400\">expr [, rank]<\/span><b>)<\/b><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Max(expr [, rank])<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Min<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the lowest value amongst the evaluated values of a field. You can get a specific nth value from the returned values using the <\/span><span style=\"font-weight: 400\">rank<\/span><span style=\"font-weight: 400\"> parameter.<\/span><\/p>\n<p><strong>Recommend Reading &#8211;\u00a0<\/strong>\u00a0<strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-field-functions\/\">Qlik Sense Field Functions<\/a><\/strong><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Max(expr [, rank])<\/pre>\n<ul>\n<li><span style=\"font-weight: 400\">Mode<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the most commonly occurring value or the value that occurs the highest number of times in a field. This function evaluates and returns both text and numeric values from a field. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Mode(expr)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Only<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns a value which is the only possible result of a particular evaluation. This function uses both text and numeric values. If there is no such unique value which exists as the only value after the evaluation of data values, then the function returns NULL. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Only(expr)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Sum<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function calculates the total of the values given in a field and returns the calculated sum. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Sum([distinct]expr)<\/pre>\n<h3><span style=\"font-weight: 400\">b. Counter aggregation<\/span> <span style=\"font-weight: 400\">functions<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The counter aggregation functions count the number of values being evaluated in a field and returns that number.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Count<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the total number of values present in a field in a table. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">count([distinct ] expression |* )<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">MissingCount<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the number of missing values in a field or expression.<\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MissingCount([ distinct ] expression)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">NullCount<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the number or count of all the NULLs present in an expression or field of a table. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">NullCount([ distinct ] expression)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">NumericCount<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function counts only the numeric values present in an expression or field and returns the count.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/\">Let&#8217;s revise Qlik Sense Counter Functions<\/a><\/strong><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">NumericCount([ distinct ] expression)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">TextCount<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function counts only the text values present in an expression or field and returns the count.<\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">TextCount([ distinct ] expression)<\/pre>\n<h3><span style=\"font-weight: 400\">c. Financial aggregation functions<\/span><\/h3>\n<p><span style=\"font-weight: 400\">These are the aggregation <strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-financial-functions\/\">functions applied to the financial data<\/a><\/strong> values and used in the financial operations related to payments and cash flow. <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">IRR<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function calculates and returns the Internal Rate of Interest (IRR) value for a series or number of cash flow or the money debited and credited. The IRR is the interest rate which a person receives upon making investments where payments are made (shown by a negative sign) and received (shown by a positive sign). Such payments must occur at regular intervals like monthly or annually.<\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">IRR(value)<\/pre>\n<p><span style=\"font-weight: 400\">For instance, a field named \u2018<\/span><i><span style=\"font-weight: 400\">Payments\u2019<\/span><\/i><span style=\"font-weight: 400\"> contains some values showing cash flow for which IRR must be calculated. Suppose the values are, -1000, 3000, 4200, 6800 and then the function <\/span><span style=\"font-weight: 400\">IRR(Payments)<\/span><span style=\"font-weight: 400\"> will return the interest value as 0.1634. <\/span><span style=\"font-weight: 400\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">XIRR<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function calculates the IRR for a defined period or schedule of a series of cash flow. This means that the time periods for cash flows don\u2019t have to be periodic. In the function, you can specify the payments or cashflow values from the parameter <\/span><span style=\"font-weight: 400\">pmt<\/span><span style=\"font-weight: 400\">. Also, the schedule of cash flow or payments can be set by <\/span><span style=\"font-weight: 400\">date<\/span><span style=\"font-weight: 400\">. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">XIRR(pmt, date)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">NPV<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the Net Present Value (NPV) for a series of future payments based on a discount rate applied on the payments values over a period.<\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">NPV(discount_rate, value)<\/pre>\n<p><span style=\"font-weight: 400\">Where, <\/span><span style=\"font-weight: 400\">discount_rate<\/span><span style=\"font-weight: 400\"> is the rate of discount applied over the entire period on the payment values. <\/span><\/p>\n<p><span style=\"font-weight: 400\">value<\/span><span style=\"font-weight: 400\"> is the expression or field which contains the payment values. <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">XNPV<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the Net Present Value (NPV) for a series of future payments based on a discount rate applied on the payments values over fixed schedule of <strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-date-and-time-functions\/\">time or date<\/a><\/strong> i.e. the time intervals might not be periodic.<\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">XNPV(discount_rate,pmt,date)<\/pre>\n<p><span style=\"font-weight: 400\">Where, <\/span><span style=\"font-weight: 400\">discount_rate<\/span><span style=\"font-weight: 400\"> is the rate of discount applied over the entire period on the payment values. <\/span><\/p>\n<p><span style=\"font-weight: 400\">pmt<\/span><span style=\"font-weight: 400\"> is the expression or field which contains the payment values.<\/span><\/p>\n<p><span style=\"font-weight: 400\">date<\/span><span style=\"font-weight: 400\"> is the expression gives the dates which specifies the schedule of dates which corresponds to the payments we want to evaluate. <\/span><\/p>\n<h3><span style=\"font-weight: 400\">d. Statistical aggregation functions<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Avg<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the average of all the aggregated values from the data fields. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">avg([distinct] expression)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Correl<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the correlation coefficient for the aggregated set of values which exists as a pair of coordinates represented as x and y-values or value1 and value2 in the expression.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-integer-functions\/\">We recommend you to read Qlik Sense Integer Functions<\/a><\/strong><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Correl(value1, value2)<\/pre>\n<p><span style=\"font-weight: 400\">Where, value1 and value 2 are the series of paired values for which we can calculate the correlation coefficient by the function.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Fractile<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function evaluates a fractile value for the given values in aggregation. You can set the fraction between 0 and 1 corresponding to the fractile value you wish to calculate for a given set of values. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Fractile(expr, fraction)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Kurtosis<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function evaluates and returns the kurtosis value for a given set of values. You can use the <\/span><i><span style=\"font-weight: 400\">Distinct<\/span><\/i><span style=\"font-weight: 400\"> parameter to specify that all the duplicate values will be disregarded by the function. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Kurtosis([distinct ] expr)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Median<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function evaluates and returns the median of an aggregated set of values given in the expression. Through the parameter <\/span><span style=\"font-weight: 400\">expr<\/span><span style=\"font-weight: 400\">, you can specify the field which contains values for which you want to calculate the median. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Median(expr)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Skew<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the skewness of the set of values provided for evaluation. You can use the <\/span><i><span style=\"font-weight: 400\">Distinct<\/span><\/i><span style=\"font-weight: 400\"> parameter to specify that all the duplicate values will be disregarded by the function. Also, using the parameter <\/span><span style=\"font-weight: 400\">expr<\/span><span style=\"font-weight: 400\">, you can specify the field which contains values for which you want to calculate the skewness.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-pie-chart\/\">You must read Qlik Sense Pie Chart<\/a><\/strong><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Skew([distinct]expr)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Stdev<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function evaluates and returns the standard deviation for a given set of values. You can use the <\/span><i><span style=\"font-weight: 400\">Distinct<\/span><\/i><span style=\"font-weight: 400\"> parameter to specify that all the duplicate values will be disregarded by the function. Also, the parameter <\/span><span style=\"font-weight: 400\">expr<\/span><span style=\"font-weight: 400\">, you can specify the field which contains values for which you want to calculate the standard deviation. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Stdev([distinct] expr)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Sterr<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function evaluates and returns the standard error (stdev\/sqrt(n)) value for a given set of values. You can use the <\/span><i><span style=\"font-weight: 400\">Distinct<\/span><\/i><span style=\"font-weight: 400\"> parameter to specify that all the duplicate values will be disregarded by the function. Also, the parameter <\/span><span style=\"font-weight: 400\">expr<\/span><span style=\"font-weight: 400\">, you can specify the field which contains values for which you want to calculate the standard error. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Sterr([distinct] expr)<\/pre>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">STEYX<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function evaluates and returns the standard error value of the predicted y-value corresponding to each x-value in regression. The values that we take in as input must be in pairs of x and y-values. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">STEYX(y_value, x_value)<\/pre>\n<h3><span style=\"font-weight: 400\">e. String aggregation functions<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Concat<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns a combined <strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-string-functions\/\">string<\/a><\/strong> i.e. a string resulting from the concatenation of a few individual strings. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Concat([distinct]string[,delimiter [,sort-weight]])<\/pre>\n<p><span style=\"font-weight: 400\">Where, the <\/span><span style=\"font-weight: 400\">string<\/span><span style=\"font-weight: 400\"> is the number of individual strings which you want to join or combine.<\/span><\/p>\n<p><span style=\"font-weight: 400\">delimiter<\/span><span style=\"font-weight: 400\"> is the sign which you want to use to separate the individual values in the joined string.<\/span><\/p>\n<p><span style=\"font-weight: 400\">sort-weight<\/span><span style=\"font-weight: 400\"> sets the sort order for concatenation of strings i.e. the string corresponding to the lowest value will be concatenated first and so on till the highest value. <\/span><\/p>\n<p><strong>For example,<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">TeamData:\r\nLOAD * inline [\r\nSalesZone|Team|Amount\r\nEast|Gamma|20000\r\nEast|Gamma|20000\r\nWest|Zeta|19000\r\nEast|Alpha|25000\r\nEast|Delta|14000\r\nWest|Epsilon|17000\r\nWest|Eta|14000\r\nEast|Beta|20000\r\nWest|Theta|23000\r\n] (delimiter is '|');<\/pre>\n<p>LOAD SalesGroup,Concat(distinct Team,&#8217;-&#8216;) as TeamConcat<\/p>\n<p><span style=\"font-weight: 400\">Resident TeamData Group By SalesGroup;<\/span><\/p>\n<p><span style=\"font-weight: 400\">This will return a field having records with concatenated strings of East and West sales zones. <\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>SalesZone<\/b><\/td>\n<td><b>TeamConcat<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">East<\/span><\/td>\n<td><span style=\"font-weight: 400\">Alpha-Beta-Delta-Gamma<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">West<\/span><\/td>\n<td><span style=\"font-weight: 400\">Epsilon-Eta-Theta-Zeta<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li><span style=\"font-weight: 400\">FirstValue<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the last value from the loading of a table and its fields. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">FirstValue(expr)<\/pre>\n<p><span style=\"font-weight: 400\"><strong>For example,<\/strong> <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">TeamData:\r\nLOAD * inline [\r\nSalesZone|Team|Amount\r\nEast|Gamma|20000\r\nEast|Gamma|20000\r\nWest|Zeta|19000\r\nEast|Alpha|25000\r\nEast|Delta|14000\r\nWest|Epsilon|17000\r\nWest|Eta|14000\r\nEast|Beta|20000\r\nWest|Theta|23000\r\n] (delimiter is '|');<\/pre>\n<p><span style=\"font-weight: 400\">The function <\/span><span style=\"font-weight: 400\">FirstValue(Team)<\/span><span style=\"font-weight: 400\"> will return <\/span><i><span style=\"font-weight: 400\">Gamma<\/span><\/i><span style=\"font-weight: 400\"> for the value <\/span><i><span style=\"font-weight: 400\">East<\/span><\/i><span style=\"font-weight: 400\"> and <\/span><i><span style=\"font-weight: 400\">Zeta<\/span><\/i><span style=\"font-weight: 400\"> for the value <\/span><i><span style=\"font-weight: 400\">West<\/span><\/i><span style=\"font-weight: 400\"> as the first loaded value. <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">LastValue<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns the value which was loaded last during the loading of a table and its fields. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LastValue(expr)<\/pre>\n<p><span style=\"font-weight: 400\"><strong>For example,<\/strong> <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">TeamData:\r\nLOAD * inline [\r\nSalesZone|Team|Amount\r\nEast|Gamma|20000\r\nEast|Gamma|20000\r\nWest|Zeta|19000\r\nEast|Alpha|25000\r\nEast|Delta|14000\r\nWest|Epsilon|17000\r\nWest|Eta|14000\r\nEast|Beta|20000\r\nWest|Theta|23000\r\n] (delimiter is '|');<\/pre>\n<p><span style=\"font-weight: 400\">The function <\/span><span style=\"font-weight: 400\">LastValue(Team)<\/span><span style=\"font-weight: 400\"> will return <\/span><i><span style=\"font-weight: 400\">Beta<\/span><\/i><span style=\"font-weight: 400\"> for the value <\/span><i><span style=\"font-weight: 400\">East<\/span><\/i><span style=\"font-weight: 400\"> and <\/span><i><span style=\"font-weight: 400\">Theta<\/span><\/i><span style=\"font-weight: 400\"> for the value <\/span><i><span style=\"font-weight: 400\">West<\/span><\/i><span style=\"font-weight: 400\"> as the first loaded value. <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">MaxString<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function finds and returns the last value loaded in a field of a table.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-time-zone-functions\/\">Have a look at Qlik Sense Time Zone Functions<\/a><\/strong><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MaxString(expr)<\/pre>\n<p><span style=\"font-weight: 400\">For example, in the sample script given below, we will get the maximum string or the string loaded last in order. <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">TeamData:\r\nLOAD * inline [\r\nSalesZone|Team|Date\r\nEast|Gamma|01\/05\/2018\r\nEast|Gamma|02\/05\/2018\r\nWest|Zeta|01\/06\/2018\r\nEast|Alpha|01\/07\/2018\r\nEast|Delta|01\/08\/2018\r\nWest|Epsilon|01\/09\/2018\r\nWest|Eta|01\/10\/2018\r\nEast|Beta|01\/11\/2018\r\nWest|Theta|01\/12\/2018\r\n] (delimiter is '|');<\/pre>\n<p><span style=\"font-weight: 400\">The function, <\/span><span style=\"font-weight: 400\">MaxString(Date)<\/span><span style=\"font-weight: 400\"> will return 01\/11\/2018 for East SalesZone and 01\/12\/2018 for the SalesZone West. <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">MinString<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function finds and returns the first value loaded in a field of a table as the minimum string. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">MinString(expr)<\/pre>\n<p><span style=\"font-weight: 400\">For example, in the sample script given below, we will get the minimum string or the string loaded last in order. <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">TeamData:\r\nLOAD * inline [\r\nSalesZone|Team|Date\r\nEast|Gamma|01\/05\/2018\r\nEast|Gamma|02\/05\/2018\r\nWest|Zeta|01\/06\/2018\r\nEast|Alpha|01\/07\/2018\r\nEast|Delta|01\/08\/2018\r\nWest|Epsilon|01\/09\/2018\r\nWest|Eta|01\/10\/2018\r\nEast|Beta|01\/11\/2018\r\nWest|Theta|01\/12\/2018\r\n] (delimiter is '|');<\/pre>\n<p>The function, MinString(Date) will return 01\/05\/2018 for East SalesZone and 01\/06\/2018 for the SalesZone West.<\/p>\n<h3><span style=\"font-weight: 400\">f. Synthetic dimension functions<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The synthetic dimension functions create values synthetically which are not a part of the fields that load in the script. The values created by synthetic dimension functions reside in a synthetically created dimension. We can use the values of the synthetic dimension in charts as a calculated dimension and contain values arising from the existing dimension from the tables loaded in the script. We call such dimensions as dynamic synthetic functions. The values in such dimensions does not affect by selections made in other fields. <\/span><\/p>\n<p><span style=\"font-weight: 400\">We can use it only in chart expressions and not in script expressions. <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">ValueList<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function creates a set of row labels or strings as the newly formed synthetic dimension which will contain values of calculations made with values of other fields.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-null-functions\/\">Learn more about Qlik Sense Null Functions<\/a><\/strong><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ValueList(v1 {,...})<\/pre>\n<p><span style=\"font-weight: 400\">Where v1 shows the list of dimension names that separate by comma which you want to create. <\/span><\/p>\n<p><span style=\"font-weight: 400\">,\u2026. Is the added list of more dimensions.<\/span><\/p>\n<p><span style=\"font-weight: 400\"><strong>For example,<\/strong> <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">SalesRecord:\r\nLOAD * INLINE [\r\nSaleID|Amount|Year\r\n1|1|2018\r\n2|1|2018\r\n3|1|2018\r\n4|2|2018\r\n5|2|2018\r\n6|2|2018\r\n7|2|2018\r\n8|1|2017\r\n9|1|2017\r\n10|2|2017\r\n11|2|2017\r\n12|2|2017\r\n] (delimiter is '|');<\/pre>\n<p>We will create 3 new synthetic dimensions from the function ValueList()which will use the values given in the table.<\/p>\n<p><span style=\"font-weight: 400\">IF(ValueList(&#8216;Number of Orders&#8217;, &#8216;Average Order Size&#8217;, &#8216;Total Amount&#8217;) = &#8216;Number of Orders&#8217;, count(SaleID),&#8217;Average Order Size&#8217;, avg(Amount), \u2018Total Amount\u2019, sum(Amount) ))<\/span><\/p>\n<p><span style=\"font-weight: 400\">This will give us three new row labels in the resultant table. <\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Synthetic Dimensions<\/b><\/td>\n<td><b>Year<\/b><\/td>\n<td><b>Values<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Number of Orders<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">5.00<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Number of Orders<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">7.00<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Average Order Size<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">13.20<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Average Order Size<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">15.43<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Total Amount<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">66.00<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Total Amount<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">108.00<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li><span style=\"font-weight: 400\">ValueLoop<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">This function returns a set of values created automatically from iterations occurring from the start to end value. These newly created values reside in a synthetic dimension. <\/span><\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ValueLoop(from [, to [, step ]])<\/pre>\n<p><span style=\"font-weight: 400\">Where, <\/span><span style=\"font-weight: 400\">from<\/span><span style=\"font-weight: 400\"> is the start value of the range or set of values this function will generate.<\/span><\/p>\n<p><span style=\"font-weight: 400\">to<\/span><span style=\"font-weight: 400\"> is the end or last value of the range or set of values this function will generate. <\/span><\/p>\n<p><span style=\"font-weight: 400\">step<\/span><span style=\"font-weight: 400\"> is the size of increment for calculating each new value in the range or set of values. <\/span><\/p>\n<p><span style=\"font-weight: 400\">For example, <\/span><span style=\"font-weight: 400\">ValueLoop(1,50)<\/span><span style=\"font-weight: 400\"> will create a list of values from 1 to 50.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Or, <\/span><span style=\"font-weight: 400\">ValueLoop(2,10,2)<\/span><span style=\"font-weight: 400\"> will increment each value starting from 2 to two values further and return 2,4,6,8, and 10.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">g. Nested aggregation <\/span><\/h3>\n<p><span style=\"font-weight: 400\">Nested aggregation is done when the user wants to apply an aggregation on the result of another aggregation function, hence, known as nesting aggregations. In Qlik Sense, you can nest up to 100 aggregation functions one in the other. A very important condition for nesting the aggregation functions, you must use the TOTAL qualifier in the inner expressions every time you nest a function.<\/span><\/p>\n<p><strong>Recommended Reading &#8211;<\/strong> <strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-day-numbering-functions\/\">Qlik Sense Day Numbering Functions<\/a><\/strong><\/p>\n<p><span style=\"font-weight: 400\"><strong>For example<\/strong>, notice the expression given below, <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Sum(If(Year(OrderDate)=Max(TOTAL Year(OrderDate)), Sales))<\/pre>\n<p><span style=\"font-weight: 400\">Here, the Max() function nest in another aggregation function i.e. Sum(). We use the TOTAL qualifier in the inner expression to validate the nesting in Qlik Sense, otherwise, we will not accept it. <\/span><\/p>\n<h2><span style=\"font-weight: 400\">4. Conclusion<\/span><\/h2>\n<p><span style=\"font-weight: 400\">So, we finish our lesson on all the varied types of aggregate functions used Qlik Sense. All the aggregate functions apply the specific operation on a set of values aggregated by a similar criterion, like all the values corresponding to a particular year, like 2018, 2019 etc, or a particular customer. Thus, making sorting and structuring the data and information easy and convenient for the user.<\/span><\/p>\n<p><strong>See also &#8211;\u00a0<\/strong><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-capabilities\/\">Qlik Sense Capabilities<\/a><\/strong><\/p>\n<p><a href=\"https:\/\/help.qlik.com\/en-US\/sense\/November2018\/Subsystems\/Hub\/Content\/Sense_Hub\/Introduction\/get-started.htm\"><strong>Reference for QliK Sense<\/strong><\/a><span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:1713,&quot;href&quot;:&quot;https:\\\/\\\/help.qlik.com\\\/en-US\\\/sense\\\/November2018\\\/Subsystems\\\/Hub\\\/Content\\\/Sense_Hub\\\/Introduction\\\/get-started.htm&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20190731152819\\\/http:\\\/\\\/help.qlik.com:80\\\/en-US\\\/sense\\\/November2018\\\/Subsystems\\\/Hub\\\/Content\\\/Sense_Hub\\\/Introduction\\\/get-started.htm&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-09 19:48:06&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-17 06:43:41&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-30 00:16:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-02 06:55:17&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-13 10:36:26&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-19 19:22:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-23 01:14:02&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-26 18:40:55&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-04 22:37:38&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-19 16:19:36&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-25 11:15:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-09 06:54:03&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-17 08:50:31&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-26 20:27:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-31 09:21:09&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-08 02:10:26&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-16 15:58:41&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-11 19:50:10&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-27 16:12:10&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-04 16:28:02&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-08 08:41:30&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-12 13:12:32&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-16 17:46:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-30 00:39:18&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-07-04 02:09:14&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-07-04 02:09:14&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Objective In our last Qlik Sense tutorial, we discussed Qlik Sense Geospatial Functions. The aggregation function takes in multiple values and returns an aggregated value as a result. There are two categories of&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":43484,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17408],"tags":[17763,17762,17761,17764],"class_list":["post-43430","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qlik-sense-tutorials","tag-aggr-chart-functions","tag-aggregation-functions-in-qlik-sense","tag-qlik-sense-aggregation-functions","tag-types-of-aggregation-functions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Aggregation Functions in Qlik Sense - Types of Functions - DataFlair<\/title>\n<meta name=\"description\" content=\"Qlik Sense Aggregation Functions,Aggr chart functions,types of qlik sense aggregation functions,firstsortedvalue,counter functions\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Aggregation Functions in Qlik Sense - Types of Functions - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Qlik Sense Aggregation Functions,Aggr chart functions,types of qlik sense aggregation functions,firstsortedvalue,counter functions\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-01T06:58:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-01T08:17:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Aggregation Functions in Qlik Sense - Types of Functions - DataFlair","description":"Qlik Sense Aggregation Functions,Aggr chart functions,types of qlik sense aggregation functions,firstsortedvalue,counter functions","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/","og_locale":"en_US","og_type":"article","og_title":"Aggregation Functions in Qlik Sense - Types of Functions - DataFlair","og_description":"Qlik Sense Aggregation Functions,Aggr chart functions,types of qlik sense aggregation functions,firstsortedvalue,counter functions","og_url":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-12-01T06:58:33+00:00","article_modified_time":"2018-12-01T08:17:56+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"Aggregation Functions in Qlik Sense &#8211; Types of Functions","datePublished":"2018-12-01T06:58:33+00:00","dateModified":"2018-12-01T08:17:56+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/"},"wordCount":2431,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg","keywords":["Aggr chart Functions","Aggregation Functions in Qlik Sense","Qlik Sense Aggregation Functions","Types of aggregation Functions"],"articleSection":["Qlik Sense Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/","url":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/","name":"Aggregation Functions in Qlik Sense - Types of Functions - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg","datePublished":"2018-12-01T06:58:33+00:00","dateModified":"2018-12-01T08:17:56+00:00","description":"Qlik Sense Aggregation Functions,Aggr chart functions,types of qlik sense aggregation functions,firstsortedvalue,counter functions","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/11\/Aggregation-Functions-in-Qlik-Sense-01.jpg","width":1200,"height":628,"caption":"Aggregation Functions in Qlik Sense - Types of Functions"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-aggregation-functions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Qlik Sense Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/qlik-sense-tutorials\/"},{"@type":"ListItem","position":3,"name":"Aggregation Functions in Qlik Sense &#8211; Types of Functions"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ce4a0e3e542444fc73bbebf83e89e8b73e2d95ccb1fcee64da9945f078b97c5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team provides industry-driven content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our expert educators focus on delivering value-packed, easy-to-follow resources for tech enthusiasts and professionals.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam2\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/43430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=43430"}],"version-history":[{"count":5,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/43430\/revisions"}],"predecessor-version":[{"id":44146,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/43430\/revisions\/44146"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/43484"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=43430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=43430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=43430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}