Le principe est d'utiliser la propriété showRoot du dataprovider et d'utiliser le renderer par défaut.

Le code :

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
	width="470" height="370" >
<mx:Script>
<![CDATA[
	
import mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer;
import mx.collections.IGroupingCollection;
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
import mx.collections.GroupingField;
import mx.collections.Grouping;
import mx.collections.ArrayCollection;
import mx.collections.GroupingCollection;
			
[Bindable]
public var flatData:ArrayCollection = new ArrayCollection(
	[{ Region:"Southwest", Territory:"Arizona", Territory_Rep:"Barbara Jennings", Estimate:40000 , Actual:38865 },
	{ Region:"Southwest", Territory:"Arizona", Territory_Rep:"Dana Binn" , Estimate:30000 , Actual:29885 },
	{ Region:"Southwest", Territory:"Central California", Territory_Rep:"Joe Schmoe" , Estimate:30000 , Actual:29134 },
	{ Region:"Southwest", Territory:"Northern California" , Territory_Rep:"Lauren Ipsum" , Estimate:40000 , Actual:38805 },
	{ Region:"Southwest", Territory:"Northern California" , Territory_Rep:"T.R. Smith" , Estimate:40000 , Actual:55498 },
	{ Region:"Southwest", Territory:"Southern California" , Territory_Rep:"Jane Grove" , Estimate:45000 , Actual:44913 },
	{ Region:"Southwest", Territory:"Southern California" , Territory_Rep:"Alice Treu" , Estimate:45000 , Actual:44985 },
	{ Region:"Southwest", Territory:"Nevada" , Territory_Rep:"Bethany Pittman" , Estimate:45000 , Actual:52888 }	]);		
				
	private function formatSummary(data:Object, col:AdvancedDataGridColumn):Object
	{
		if (data.hasOwnProperty("summary"))
		{
			return { color:0xFF0000, fontWeight:"bold", fontSize:12 };
		}		
		return {};
	}
			
	private function flatSummaryObject():Object
	{
		return { Territory_Rep:"Total", summary:true };
	}	
]]>
</mx:Script>
 
<mx:AdvancedDataGrid id="adg2" creationComplete="groupedData.refresh(); adg2.dataProvider.showRoot=false" height="342"
groupItemRenderer="mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer" x="34" y="16"width="400" height="342" showHeaders="true" headerWordWrap="true" sortExpertMode="true" sortableColumns="true" wordWrap="true" designViewDataType="flat" >
<mx:dataProvider>
<mx:GroupingCollection id="groupedData" source="{flatData}" >
	  <mx:Grouping>
	   <mx:GroupingField name="xxx" >
	   	<mx:summaries>
	   		<mx:SummaryRow summaryPlacement="last" summaryObjectFunction="flatSummaryObject">
	   		    <mx:fields>
	   		    	<mx:SummaryField dataField="Estimate" />
	   		    	<mx:SummaryField dataField="Actual" />
	   		    </mx:fields>
	   		   </mx:SummaryRow>
	   		</mx:summaries>
	   </mx:GroupingField>
	  </mx:Grouping>
</mx:GroupingCollection>
</mx:dataProvider>
	
<mx:groupedColumns>
	<mx:AdvancedDataGridColumn headerText = "Territory Rep" dataField="Territory_Rep" sortable="false"  />
	<mx:AdvancedDataGridColumnGroup >
		<mx:AdvancedDataGridColumn headerText = "Estimate"  textAlign="center" dataField="Estimate" width="100"
						         styleFunction="formatSummary"/>
		<mx:AdvancedDataGridColumn headerText = "Actual"  textAlign="center" dataField="Actual"  width="100"                                                                    
                                                         styleFunction="formatSummary"/>
	</mx:AdvancedDataGridColumnGroup>
</mx:groupedColumns>
 
</mx:AdvancedDataGrid>
 
</mx:WindowedApplication>

Ce qui nous donne :

;

Et voilà...