<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Arcade Data Expression GroupBy not grouping in ArcGIS Dashboards Questions</title>
    <link>https://community.esri.com/t5/arcgis-dashboards-questions/arcade-data-expression-groupby-not-grouping/m-p/1486509#M9769</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have been trying to create a data expression for an AGOL dashboard that turns the values from a column ('Year') into their own columns, and then groups by another column ('Type') so that I have the counts for each year for that type.&lt;/P&gt;&lt;P&gt;So, if the original table looks like this:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="50%"&gt;&lt;STRONG&gt;Type&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="50%"&gt;&lt;STRONG&gt;Year&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Apple&lt;/TD&gt;&lt;TD width="50%"&gt;2022&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Apple&lt;/TD&gt;&lt;TD width="50%"&gt;2022&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Banana&lt;/TD&gt;&lt;TD width="50%"&gt;2023&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Pear&lt;/TD&gt;&lt;TD width="50%"&gt;2024&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to create a table that looks like this:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;Type&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2022&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2023&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2024&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Apple&lt;/TD&gt;&lt;TD width="25%"&gt;2&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Banana&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Pear&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not new to scripting but I am new to Arcade, so I've been looking around and piecing together samples to get what I need, and I think I've almost got it. The code below structures the table the way I want it with the columns, but it's not grouping by Type the way I want it to. It's outputting the equivalent of this:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;Type&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2022&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2023&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2024&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Apple&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Apple&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Banana&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Pear&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone let me know where I'm going wrong in my GroupBy expression? Or is there a larger problem with my approach. Thank you!&lt;/P&gt;&lt;LI-CODE lang="python"&gt;var p = Portal('url');

var fs = FeatureSetByPortalItem(
    p,
    'id',
    0,
    [
        'Original_Year_Field',
        'Original_Type_Field'
    ],
    false
);

var yearDict = {'fields': [{'name':'Type', 'type':'esriFieldTypeString'},
                           {'name':'2022', 'type':'esriFieldTypeInteger'},
                           {'name':'2023', 'type':'esriFieldTypeInteger'},
                           {'name':'2024', 'type':'esriFieldTypeInteger'}],
                'geometryType': '',
                'features': []};

for (var feature in fs) {
    var cat = feature['Original_Type_Field']
    var yearone = Iif(feature['Original_Year_Field'] == 2022,1,null)
    var yeartwo = Iif(feature['Original_Year_Field'] == 2023,1,null)
    var yearthree = Iif(feature['Original_Year_Field'] == 2024,1,null)
    Push(yearDict.features, {"attributes": {"Type": cat,
                                            "2022": yearone,
                                            "2023": yeartwo,
                                            "2024": yearthree}})
}

var fs_dict = FeatureSet(Text(yearDict));
return fs_dict

return GroupBy(fs_dict, ['Type'],
       [{ name: '2022', expression: '2022', statistic: 'COUNT' },
        { name: '2023', expression: '2023', statistic: 'COUNT' },
        { name: '2024', expression: '2024', statistic: 'COUNT' }]);&lt;/LI-CODE&gt;</description>
    <pubDate>Thu, 06 Jun 2024 18:26:30 GMT</pubDate>
    <dc:creator>frasertab</dc:creator>
    <dc:date>2024-06-06T18:26:30Z</dc:date>
    <item>
      <title>Arcade Data Expression GroupBy not grouping</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/arcade-data-expression-groupby-not-grouping/m-p/1486509#M9769</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have been trying to create a data expression for an AGOL dashboard that turns the values from a column ('Year') into their own columns, and then groups by another column ('Type') so that I have the counts for each year for that type.&lt;/P&gt;&lt;P&gt;So, if the original table looks like this:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="50%"&gt;&lt;STRONG&gt;Type&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="50%"&gt;&lt;STRONG&gt;Year&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Apple&lt;/TD&gt;&lt;TD width="50%"&gt;2022&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Apple&lt;/TD&gt;&lt;TD width="50%"&gt;2022&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Banana&lt;/TD&gt;&lt;TD width="50%"&gt;2023&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Pear&lt;/TD&gt;&lt;TD width="50%"&gt;2024&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to create a table that looks like this:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;Type&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2022&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2023&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2024&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Apple&lt;/TD&gt;&lt;TD width="25%"&gt;2&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Banana&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Pear&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;TD width="25%"&gt;0&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not new to scripting but I am new to Arcade, so I've been looking around and piecing together samples to get what I need, and I think I've almost got it. The code below structures the table the way I want it with the columns, but it's not grouping by Type the way I want it to. It's outputting the equivalent of this:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;Type&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2022&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2023&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="25%"&gt;&lt;STRONG&gt;2024&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Apple&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Apple&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Banana&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="25%"&gt;Pear&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;null&lt;/TD&gt;&lt;TD width="25%"&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone let me know where I'm going wrong in my GroupBy expression? Or is there a larger problem with my approach. Thank you!&lt;/P&gt;&lt;LI-CODE lang="python"&gt;var p = Portal('url');

var fs = FeatureSetByPortalItem(
    p,
    'id',
    0,
    [
        'Original_Year_Field',
        'Original_Type_Field'
    ],
    false
);

var yearDict = {'fields': [{'name':'Type', 'type':'esriFieldTypeString'},
                           {'name':'2022', 'type':'esriFieldTypeInteger'},
                           {'name':'2023', 'type':'esriFieldTypeInteger'},
                           {'name':'2024', 'type':'esriFieldTypeInteger'}],
                'geometryType': '',
                'features': []};

for (var feature in fs) {
    var cat = feature['Original_Type_Field']
    var yearone = Iif(feature['Original_Year_Field'] == 2022,1,null)
    var yeartwo = Iif(feature['Original_Year_Field'] == 2023,1,null)
    var yearthree = Iif(feature['Original_Year_Field'] == 2024,1,null)
    Push(yearDict.features, {"attributes": {"Type": cat,
                                            "2022": yearone,
                                            "2023": yeartwo,
                                            "2024": yearthree}})
}

var fs_dict = FeatureSet(Text(yearDict));
return fs_dict

return GroupBy(fs_dict, ['Type'],
       [{ name: '2022', expression: '2022', statistic: 'COUNT' },
        { name: '2023', expression: '2023', statistic: 'COUNT' },
        { name: '2024', expression: '2024', statistic: 'COUNT' }]);&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 06 Jun 2024 18:26:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/arcade-data-expression-groupby-not-grouping/m-p/1486509#M9769</guid>
      <dc:creator>frasertab</dc:creator>
      <dc:date>2024-06-06T18:26:30Z</dc:date>
    </item>
    <item>
      <title>Re: Arcade Data Expression GroupBy not grouping</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/arcade-data-expression-groupby-not-grouping/m-p/1486550#M9770</link>
      <description>&lt;P&gt;Your return at line 33 means the GroupBy function didn't run.&lt;/P&gt;&lt;P&gt;This sample script gives the expected table. One thing I had to change to make it work properly is to have the fields in the Dictionary start with a string.&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;var fs = FeatureSet(
  {"fields":[
      {"alias":"Type","name":"Type","type":"esriFieldTypeString"},
      {"alias":"Year","name":"Year","type":"esriFieldTypeInteger"}],
      "spatialReference":{"wkid":4326},
      "geometryType":"",
      "features":[
        {"geometry":'', "attributes":{"Type":'Apple',"Year":2022}},
        {"geometry":'', "attributes":{"Type":'Apple',"Year":2022}},
        {"geometry":'', "attributes":{"Type":'Banana',"Year":2023}},
        {"geometry":'', "attributes":{"Type":'Pear',"Year":2024}},
    ]
  }
);

var yearDict = {'fields': [{'name':'Type', 'type':'esriFieldTypeString'},
                           {'name':'y2022', 'type':'esriFieldTypeInteger'},
                           {'name':'y2023', 'type':'esriFieldTypeInteger'},
                           {'name':'y2024', 'type':'esriFieldTypeInteger'}],
                'geometryType': '',
                'features': []};

for (var feature in fs) {
    var cat = feature['Type']
    var yearone = Iif(feature['Year'] == 2022,1,null)
    var yeartwo = Iif(feature['Year'] == 2023,1,null)
    var yearthree = Iif(feature['Year'] == 2024,1,null)
    Push(yearDict.features, {"attributes": {"Type": cat,
                                            "y2022": yearone,
                                            "y2023": yeartwo,
                                            "y2024": yearthree}})
}

var fs_dict = FeatureSet(Text(yearDict));
//return fs_dict

return GroupBy(fs_dict, ['Type'],
       [{ name: '2022', expression: 'y2022', statistic: 'Count' },
        { name: '2023', expression: 'y2023', statistic: 'Count' },
        { name: '2024', expression: 'y2024', statistic: 'Count' }]);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 06 Jun 2024 19:49:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/arcade-data-expression-groupby-not-grouping/m-p/1486550#M9770</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2024-06-06T19:49:55Z</dc:date>
    </item>
    <item>
      <title>Re: Arcade Data Expression GroupBy not grouping</title>
      <link>https://community.esri.com/t5/arcgis-dashboards-questions/arcade-data-expression-groupby-not-grouping/m-p/1486620#M9772</link>
      <description>&lt;P&gt;Thank you! I figured I was probably down to some syntax errors, but you've saved me hours of tinkering with it. I have no idea how long it would have taken me to realize not having a letter in the field name was causing issues. Thanks again!&lt;/P&gt;</description>
      <pubDate>Thu, 06 Jun 2024 21:00:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-dashboards-questions/arcade-data-expression-groupby-not-grouping/m-p/1486620#M9772</guid>
      <dc:creator>frasertab</dc:creator>
      <dc:date>2024-06-06T21:00:47Z</dc:date>
    </item>
  </channel>
</rss>

