

{"id":39599,"date":"2018-11-09T15:08:46","date_gmt":"2018-11-09T09:38:46","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=39599"},"modified":"2018-11-09T15:08:46","modified_gmt":"2018-11-09T09:38:46","slug":"qlik-sense-counter-functions","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/","title":{"rendered":"Qlik Sense Counter Functions With Syntax"},"content":{"rendered":"<h2><span style=\"font-weight: 400\">1. Objective &#8211; Counter Functions in Qlik Sense<\/span><\/h2>\n<p><span style=\"font-weight: 400\">In our last <strong>Qlik Sense Tutorial<\/strong>, we discussed <strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-pie-chart\/\">Qlik Sense Pie Chart<\/a><\/strong>. Today, we will Qlik Sense Counter Functions. We call them counter functions because they apply to records when encountered during the load script execution of the LOAD statement. Moreover, these are all script functions that we use in the load script code. Also, we will see the syntax for Qlik Sense Counter Functions.\u00a0<\/span><\/p>\n<p>So, let&#8217;s start the Qlik Sense Counter Functions Tutorial.<\/p>\n<div id=\"attachment_39611\" style=\"width: 1211px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-39611\" class=\"size-full wp-image-39611\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01.jpg\" alt=\"Qlik Sense Counter Functions\" width=\"1201\" height=\"629\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01.jpg 1201w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01-520x272.jpg 520w\" sizes=\"auto, (max-width: 1201px) 100vw, 1201px\" \/><\/a><p id=\"caption-attachment-39611\" class=\"wp-caption-text\">Qlik Sense Counter Functions With Syntax<\/p><\/div>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-color-functions\/\">You must read about Qlik Sense Color Functions<\/a><\/strong><\/p>\n<h2>2. Qlik Sense Counter Functions<\/h2>\n<p>Following are some Counter Functions in Qlik Sense &#8211;<\/p>\n<h3><span style=\"font-weight: 400\">i. autonumber() in Qlik Sense<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The autonumber() function assigns an integer value to every unique record encountered during script execution. This is done to store large data records into compact composite keys where integer values are assigned to distinct record values as per the expression specified in autonumber function. <\/span><\/p>\n<p><strong>The syntax for Qlik Sense aurtonumber function &#8211;\u00a0<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">autonumber(expression[ , AutoID])<\/pre>\n<p><span style=\"font-weight: 400\">where <\/span><i><span style=\"font-weight: 400\">expression<\/span><\/i><span style=\"font-weight: 400\"> is the record names that you want to make composite keys for using autonumber.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Basically, the <\/span><i><span style=\"font-weight: 400\">AutoID<\/span><\/i><span style=\"font-weight: 400\"> is an optional parameter or an ID that you can assign to individual autonumber counters in case you are creating more than one in the same script.<\/span><\/p>\n<p><span style=\"font-weight: 400\">For example, we have created a composite key for the records of combination of the fields Region, Year and Month. <\/span><\/p>\n<p><strong>RegionSales\u00a0in Qlik Sense autonumber:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD *,\r\nAutoNumber(Region&amp;Year&amp;Month) as RYMkey;\r\nLOAD * INLINE\r\n[ Region, Year, Month, Sales\r\nNorth, 2017, May, 245\r\nNorth, 2017, May, 347\r\nNorth, 2017, June, 127\r\nSouth, 2017, June, 645\r\nSouth, 2018, May, 367\r\nSouth, 2018, May, 221\r\n];<\/pre>\n<p><span style=\"font-weight: 400\">So, this composite key will assign integers to the records of the table we loaded inline.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-histogram\/\">Have a look at Qlik Sense Histogram Visualization<\/a><\/strong><\/p>\n<table style=\"height: 429px\" width=\"508\">\n<tbody>\n<tr>\n<td><strong>Region<\/strong><\/td>\n<td><strong>Year<\/strong><\/td>\n<td><strong>Month<\/strong><\/td>\n<td><strong>Sales<\/strong><\/td>\n<td><strong>RYMkey<\/strong><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">North<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">245<\/span><\/td>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">North<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">374<\/span><\/td>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">North<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">June<\/span><\/td>\n<td><span style=\"font-weight: 400\">127<\/span><\/td>\n<td><span style=\"font-weight: 400\">2<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">South<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">June<\/span><\/td>\n<td><span style=\"font-weight: 400\">645<\/span><\/td>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">South<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">367<\/span><\/td>\n<td><span style=\"font-weight: 400\">4<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">South<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">221<\/span><\/td>\n<td><span style=\"font-weight: 400\">4<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400\">As you can see in the table, for each new combination of region, year and month, there is a unique RYMkey. Such RYMkeys are the composite keys made using autonumber() function. So, we use these keys further in the script when values corresponding to the keys use in a calculation. For example, using the RYMkey values, the sales values corresponding to each RYM combination can be used in some calculations like sum, average etc. <\/span><\/p>\n<h3><span style=\"font-weight: 400\">ii. autonumberhash128() in Qlik Sense<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The autonumberhash128() is a variation of the autonumber() function we learned earlier. \u00a0Autonumber only created an integer value as the composite key and assigned it to combination of vales but autonumberhash128() first creates a 128-bit hash value for the combination and then assigns an integer number corresponding to each hash value. We create such values to store large and complex keys in less memory space and simpler forms.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/selections-i\">Let&#8217;s discuss Selections in Qlik Sense<\/a><\/strong><\/p>\n<p><strong>The syntax for Qlik Sense Counter Function autonumebrhash128<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">autonumberhash128(expression {, expression})<\/pre>\n<p><span style=\"font-weight: 400\">Please note that such we can only create hash values if we use it in the same data load script. If you want to use the composite keys made using autonumberhash128() in some other load script then you must use functions like hash128, hash160, and hash256. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Anyway, to understand this function better, we load a sample data inline and then create a hash value composite key using autonumberhash128() function. In this sample code, we have created a composite key called RYMkey which will assign unique 128-bit hash values to the region, year and month combinations. <\/span><\/p>\n<p><strong>RegionSales\u00a0in autonumberhash128<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD *,\r\nAutoNumberHash128(Region, Year, Month) as RYMkey;\r\nLOAD * INLINE\r\n[ Region, Year, Month, Sales\r\nNorth, 2017, May, 245\r\nNorth, 2017, May, 347\r\nNorth, 2017, June, 127\r\nSouth, 2017, June, 645\r\nSouth, 2018, May, 367\r\nSouth, 2018, May, 221\r\n];<\/pre>\n<p>This will result in composite keys corresponding to unique combinations of region, year and month.<\/p>\n<table style=\"height: 438px\" width=\"459\">\n<tbody>\n<tr>\n<td><strong>Region<\/strong><\/td>\n<td><strong>Year<\/strong><\/td>\n<td><strong>Month<\/strong><\/td>\n<td><strong>Sales<\/strong><\/td>\n<td><strong>RYMkey<\/strong><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">North<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">245<\/span><\/td>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">North<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">374<\/span><\/td>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">North<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">June<\/span><\/td>\n<td><span style=\"font-weight: 400\">127<\/span><\/td>\n<td><span style=\"font-weight: 400\">2<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">South<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">June<\/span><\/td>\n<td><span style=\"font-weight: 400\">645<\/span><\/td>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">South<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">367<\/span><\/td>\n<td><span style=\"font-weight: 400\">4<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">South<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">221<\/span><\/td>\n<td><span style=\"font-weight: 400\">4<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400\">Now, using these RYMkey values like use 2 if you want to use the combination North, 2017, June. In the code given below, we have used the composite key we have created to load a new field \u2018Costs\u2019.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-gauge-chart\/\">Read Qlik Sense Gauge Chart<\/a><\/strong><\/p>\n<p><span style=\"font-weight: 400\">RegionCosts:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD Costs,\r\nAutoNumberHash128(Region, Year, Month) as RYMkey;\r\nLOAD * INLINE\r\n[ Region, Year, Month, Costs\r\nSouth, 2018, May, 167\r\nNorth, 2017, May, 56\r\nNorth, 2017, June, 199\r\nSouth, 2017, June, 64\r\nSouth, 2018, May, 172\r\nSouth, 2018, May, 126\r\n];<\/pre>\n<p><span style=\"font-weight: 400\">Now, the sales and Costs fields are automatically linked depending upon the RYM combination they are sharing. For instance, notice in the table below, that shows sum of costs and sales for each unique RYM combination. <\/span><\/p>\n<table style=\"height: 375px\" width=\"520\">\n<tbody>\n<tr>\n<td><strong>Region<\/strong><\/td>\n<td><strong>Year<\/strong><\/td>\n<td><strong>Month<\/strong><\/td>\n<td><strong>Sum([Sales])<\/strong><\/td>\n<td><strong>Sum([Costs])<\/strong><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">Totals<\/span><\/td>\n<td><\/td>\n<td><\/td>\n<td><span style=\"font-weight: 400\">1952<\/span><\/td>\n<td><span style=\"font-weight: 400\">784<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">North<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">June<\/span><\/td>\n<td><span style=\"font-weight: 400\">127<\/span><\/td>\n<td><span style=\"font-weight: 400\">199<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">North<\/span><\/td>\n<td><span style=\"font-weight: 400\">2017<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">592<\/span><\/td>\n<td><span style=\"font-weight: 400\">56<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">South<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">June<\/span><\/td>\n<td><span style=\"font-weight: 400\">645<\/span><\/td>\n<td><span style=\"font-weight: 400\">64<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">South<\/span><\/td>\n<td><span style=\"font-weight: 400\">2018<\/span><\/td>\n<td><span style=\"font-weight: 400\">May<\/span><\/td>\n<td><span style=\"font-weight: 400\">588<\/span><\/td>\n<td><span style=\"font-weight: 400\">465<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span style=\"font-weight: 400\">iii. autonumberhash256()<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The autonumberhash256() function creates a 256-bit value for unique composite keys made for distinct combinations of data records or value. Like, Europe, 2017, January can be one combination of data records for which first a 256-bit hash value will create and then an integer will assign to it. Much like all the other autonumber function, this is also we use to manage system\u2019s space by handling complex keys through making such composite keys. This also prevents from the formation of the synthetic key.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/filter-pane-in-qlik-sense\/\">Do you know about Qlik Sense Filter Pane<\/a><\/strong><\/p>\n<p><strong>Syntax for autonumberhash256<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">autonumberhash256(expression {, expression})<\/pre>\n<p><span style=\"font-weight: 400\">The expressions are the fields from the data record for which you want to create a 256-bit hash.<\/span><\/p>\n<p><span style=\"font-weight: 400\">For instance, if we use the same data set that we have used while explaining autonumberhash128() function, then the code will look like,<\/span><\/p>\n<p><strong>RegionSales\u00a0in Qlik Sense Counter Functions autonumberhash256<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD *,\r\nAutoNumberHash256(Region, Year, Month) as RYMkey;\r\nLOAD * INLINE\r\n[ Region, Year, Month, Sales\r\nNorth, 2017, May, 245\r\nNorth, 2017, May, 347\r\nNorth, 2017, June, 127\r\nSouth, 2017, June, 645\r\nSouth, 2018, May, 367\r\nSouth, 2018, May, 221\r\n];<\/pre>\n<p><span style=\"font-weight: 400\">This will create 256-bit hash values and integer values corresponding to the Region, Month and Year combinations the function encounters while executing the script. Like,<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">RYMkey 1 for North, 2017, May<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">RYMkey 2 for North, 2017, June<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">RYMkey 3 for South, 2017, June<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">RYMkey 4 for South, 2018, May<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Also, there will be unique 256-bit hash values for the key numbers 1,2,3 and 4 stored in the system.<\/span><\/p>\n<h3><span style=\"font-weight: 400\">iv. InterNo() in Qlik Sense<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The InterNo() function is used to mark or number iterations or number of times an expression is being executed in a loop. Like, the first execution will be marked as 1, second as 2 and so on until the loop is terminated.<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/introduction-to-qlik-sense\/\">Let&#8217;s revise Qlik Sense Key Concepts<\/a><\/strong><\/p>\n<p><strong>The syntax for InterNo function:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">InterNo()<\/pre>\n<p><span style=\"font-weight: 400\">Let us understand this through an example. Suppose we have a code as below. <\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD\r\n\u00a0\u00a0IterNo() as Day,\r\n\u00a0\u00a0Date( StartDate + IterNo() - 1 ) as Date\r\n\u00a0\u00a0While StartDate + IterNo() - 1 &lt;= EndDate;\r\nLOAD * INLINE\r\n[StartDate, EndDate\r\n22-01-2018, 26-01-2018\r\n];<\/pre>\n<p>This code will generate iterations for each time the loop is executed starting from the start date and ending on the end date as specified in the Load Inline statement. The repetitions will be numbered in the field Day. It is recommended to use the InterNo() function with While clause as it works best in loops.<\/p>\n<p><span style=\"font-weight: 400\">The above code will generate a table as a result.<\/span><\/p>\n<table style=\"height: 374px\" width=\"452\">\n<tbody>\n<tr>\n<td><b>Day<\/b><\/td>\n<td><b>Date<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<td><span style=\"font-weight: 400\">22-01-2018<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">2<\/span><\/td>\n<td><span style=\"font-weight: 400\">23-01-2018<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<td><span style=\"font-weight: 400\">24-01-2018<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">4<\/span><\/td>\n<td><span style=\"font-weight: 400\">25-01-2018<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">5<\/span><\/td>\n<td><span style=\"font-weight: 400\">26-01-2018<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400\">This shows that the InterNo() function has created numbers for each time the while loop got executed through the LOAD statement and has stored them as the values of the field, Day. You can use this function for larger data values as it automatically creates number through loop saving the time to manually do it. \u00a0<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-capabilities\/\">You must read about Qlik Sense capabilities<\/a><\/strong><\/p>\n<h3><span style=\"font-weight: 400\">v. RecNo() in Qlik Sense<\/span><\/h3>\n<p><span style=\"font-weight: 400\">The RecNo() function returns the number of record as per each record\u2019s order in the LOAD script. Like, the first record that is read during script execution will be numbered 1, then the next as 2 and so on<\/span><\/p>\n<p><strong>The syntax for Qlik Sense Counter Functions RecNo:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">RecNo()<\/pre>\n<p><span style=\"font-weight: 400\">For example, we load some data inline through the data load script. We will call this raw data table load. <\/span><\/p>\n<p><strong>Table1:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD * INLINE\r\n[A, B\r\n1,cc\r\n2,dd\r\n3,ee];<\/pre>\n<p><strong>Table2:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD * INLINE\r\n[C, D\r\n4, xx\r\n5,yy\r\n6,zz];<\/pre>\n<p><span style=\"font-weight: 400\">Now, using RecNo() we will load record numbers of the entries in both the tables loaded above. <\/span><\/p>\n<p><strong>QTab:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD *,\r\nRecNo( ),\r\nresident Table1 where A&lt;&gt;2;\r\nLOAD\r\nC as A,\r\nD as B,\r\nRecNo( ),\r\nresident Table2 where A&lt;&gt;4;<\/pre>\n<p><span style=\"font-weight: 400\">\/\/We don&#8217;t need the source tables anymore, so we drop them<\/span><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/box-plot-in-qlik-sense\/\">Do you know about Qlik Sense Box Plot Visualizations<\/a><\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Drop tables Table1, Table2;<\/pre>\n<p><span style=\"font-weight: 400\">Here, we don\u2019t want the record number 2 and 4 from each table. So, the resultant table would be,<\/span><\/p>\n<table style=\"height: 296px\" width=\"460\">\n<tbody>\n<tr>\n<td><b>A<\/b><\/td>\n<td><b>B<\/b><\/td>\n<td><b>RecNo()<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<td><span style=\"font-weight: 400\">cc<\/span><\/td>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<td><span style=\"font-weight: 400\">ee<\/span><\/td>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">5<\/span><\/td>\n<td><span style=\"font-weight: 400\">yy<\/span><\/td>\n<td><span style=\"font-weight: 400\">2<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">6<\/span><\/td>\n<td><span style=\"font-weight: 400\">Zz<\/span><\/td>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400\">If you notice carefully, you\u2019ll observe the record numbers according to the load order in the raw script and not as they appear in the table. <\/span><\/p>\n<h3><span style=\"font-weight: 400\">vi. RowNo() <\/span><\/h3>\n<p><span style=\"font-weight: 400\">The RowNo() function returns the numbering for rows in the internal Qlik Sense table made by loading data into data load script. This is different from RecNo() function as it returns the numbering of rows when a table is still in the load script in raw form and not in the resultant table.<\/span><\/p>\n<p><strong>The syntax for Qlik Sense Counter Functions RowNo:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">RowNo([TOTAL])<\/pre>\n<p><span style=\"font-weight: 400\">Let us take the same example that we did in the RecNo() function explanation. <\/span><\/p>\n<p><strong>Table1:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD * INLINE\r\n[A, B\r\n1,cc\r\n2,dd\r\n3,ee];<\/pre>\n<p><strong>Table2:<\/strong><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-app\/\">Let&#8217;s discuss how to create Qlik Sense Applications<\/a><\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD * INLINE\r\n[C, D\r\n4, xx\r\n5,yy\r\n6,zz];<\/pre>\n<p><span style=\"font-weight: 400\">Now, we will create an internal table where we number the rows using RowNo().<\/span><\/p>\n<p><strong>QTab:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">LOAD *,\r\nRowNo( ),\r\nresident Table1 where A&lt;&gt;2;\r\nLOAD\r\nC as A,\r\nD as B,\r\nRowNo( ),\r\nresident Table2 where A&lt;&gt;4;<\/pre>\n<p>\/\/We don&#8217;t need the source tables anymore, so we drop them<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Drop tables Table1, Table2;<\/pre>\n<p><span style=\"font-weight: 400\">The table created will look like this, <\/span><\/p>\n<table style=\"height: 330px\" width=\"505\">\n<tbody>\n<tr>\n<td><b>A<\/b><\/td>\n<td><b>B<\/b><\/td>\n<td><b>RowNo()<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<td><span style=\"font-weight: 400\">cc<\/span><\/td>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<td><span style=\"font-weight: 400\">ee<\/span><\/td>\n<td><span style=\"font-weight: 400\">2<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">5<\/span><\/td>\n<td><span style=\"font-weight: 400\">yy<\/span><\/td>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">6<\/span><\/td>\n<td><span style=\"font-weight: 400\">Zz<\/span><\/td>\n<td><span style=\"font-weight: 400\">4<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>So, this was all in Qlik Sense Counter Functions. Hope you like our explanation.<\/p>\n<h2><span style=\"font-weight: 400\">3. Conclusion<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Hence, in this Qlik Sense Counter Function tutorial, we discussed different functions in Qlik Sense. Thus, these were all the counter functions which we use on the records when they encountered during load script processing and execution.<\/span><\/p>\n<p>Also, share your experience of learning Qlik Sense Counter Function through comments.<\/p>\n<p><strong>See also &#8211;\u00a0<\/strong><\/p>\n<p><strong><a href=\"https:\/\/data-flair.training\/blogs\/qlik-sense-conditional-functions\/\">Qlik Sense Conditional Functions<\/a><\/strong><\/p>\n<p><a href=\"https:\/\/www.qlik.com\/us\"><strong>Reference for Qlik Sense<\/strong><\/a><span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:1664,&quot;href&quot;:&quot;https:\\\/\\\/www.qlik.com\\\/us&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20251005171129\\\/https:\\\/\\\/www.qlik.com\\\/us\\\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-09 16:13:44&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-15 06:41:05&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-18 07:47:35&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-22 07:37:02&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-25 08:15:21&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2025-12-28 17:18:15&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-02 02:25:14&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-05 06:56:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-08 07:36:44&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-11 17:29:28&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-15 12:30:41&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-18 13:59:16&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-23 09:05:01&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-26 13:50:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-01-29 22:53:11&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-02 04:22:46&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-05 10:45:50&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-08 14:30:28&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-12 07:35:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-16 06:29:46&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-19 09:46:29&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-23 05:42:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-26 09:01:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-01 18:13:27&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-05 13:16:23&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-09 03:26:54&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-12 14:32:37&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-03-16 10:20:38&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-19 15:36:45&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-23 12:24:46&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-26 12:52:00&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-03-30 18:15:44&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-03 21:48:23&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-07 09:23:14&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-10 09:50:37&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-14 05:08:24&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-04-20 04:15:58&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-23 08:29:12&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-27 08:40:41&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-04-30 12:36:46&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-04 04:07:30&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-07 07:38:55&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-11 15:08:33&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-14 20:51:17&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-18 12:28:49&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-21 16:30:29&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-24 21:19:44&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-05-28 12:04:48&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-01 10:51:43&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-04 15:01:53&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-08 09:42:50&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-11 11:01:19&quot;,&quot;http_code&quot;:503},{&quot;date&quot;:&quot;2026-06-15 10:24:40&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-18 12:29:35&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-21 12:30:08&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-24 18:29:40&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-06-28 15:09:40&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-07-02 05:52:32&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-07-06 06:00:32&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-07-06 06:00:32&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Objective &#8211; Counter Functions in Qlik Sense In our last Qlik Sense Tutorial, we discussed Qlik Sense Pie Chart. Today, we will Qlik Sense Counter Functions. We call them counter functions because they&#46;&#46;&#46;<\/p>\n","protected":false},"author":6,"featured_media":39611,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17408],"tags":[17557,17556],"class_list":["post-39599","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qlik-sense-tutorials","tag-counter-fucntion-in-qlik-sense","tag-qlik-sense-counter-functions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Qlik Sense Counter Functions With Syntax - DataFlair<\/title>\n<meta name=\"description\" content=\"Qlik Sense Counter Functions,autonumber,autonumberhash128,autonumberhash256,InterNo,RecNo,RowNo counter function in Qlik Sense\" \/>\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-counter-functions\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Qlik Sense Counter Functions With Syntax - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Qlik Sense Counter Functions,autonumber,autonumberhash128,autonumberhash256,InterNo,RecNo,RowNo counter function in Qlik Sense\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-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-11-09T09:38:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1201\" \/>\n\t<meta property=\"og:image:height\" content=\"629\" \/>\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=\"8 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Qlik Sense Counter Functions With Syntax - DataFlair","description":"Qlik Sense Counter Functions,autonumber,autonumberhash128,autonumberhash256,InterNo,RecNo,RowNo counter function in Qlik Sense","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-counter-functions\/","og_locale":"en_US","og_type":"article","og_title":"Qlik Sense Counter Functions With Syntax - DataFlair","og_description":"Qlik Sense Counter Functions,autonumber,autonumberhash128,autonumberhash256,InterNo,RecNo,RowNo counter function in Qlik Sense","og_url":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-11-09T09:38:46+00:00","og_image":[{"width":1201,"height":629,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-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":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/2c58ecb4f73a39f0ef993f1ddfcd7b89"},"headline":"Qlik Sense Counter Functions With Syntax","datePublished":"2018-11-09T09:38:46+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/"},"wordCount":1458,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01.jpg","keywords":["Counter Fucntion in Qlik Sense","Qlik Sense Counter Functions"],"articleSection":["Qlik Sense Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/","url":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/","name":"Qlik Sense Counter Functions With Syntax - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01.jpg","datePublished":"2018-11-09T09:38:46+00:00","description":"Qlik Sense Counter Functions,autonumber,autonumberhash128,autonumberhash256,InterNo,RecNo,RowNo counter function in Qlik Sense","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-functions\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/10\/Qlik-Sense-Counter-Functions-01.jpg","width":1201,"height":629,"caption":"Qlik Sense Counter Functions With Syntax"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/qlik-sense-counter-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":"Qlik Sense Counter Functions With Syntax"}]},{"@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\/39599","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=39599"}],"version-history":[{"count":2,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/39599\/revisions"}],"predecessor-version":[{"id":41697,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/39599\/revisions\/41697"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/39611"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=39599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=39599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=39599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}