I have a single DataTable in a DataSet. It has 4 columns and i'd like to
get a handful of counts of unique items in 3 of the 4 columns.
Can a DataTables Select or Compute methods to COUNT DISTINCT?
These two attempts failed
DataRow[] dr = ds.Tables[0].Select( "COUNT(DISTINCT(site_name))" );
object x = ds.Tables[0].Compute( "COUNT(DISTINCT(site_name))",
"ProductionCount > 0" );
The filter in the Compute I don't really want because I'd like to count
distinct on all rows..but the method forces me ot have a filter expression
thanks
mike
William Ryan eMVP - 07 May 2004 00:43 GMT
Nope, but here's how you do it:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;326176
For your reference, here's the expression syntax
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlr
fSystemDataDataColumnClassExpressionTopic.asp
> I have a single DataTable in a DataSet. It has 4 columns and i'd like to
> get a handful of counts of unique items in 3 of the 4 columns.
[quoted text clipped - 11 lines]
> thanks
> mike
Jay B. Harlow [MVP - Outlook] - 07 May 2004 00:53 GMT
Michael,
The syntax that ADO.NET supports for Expressions (such as those passed to
Select & Compute) is documented under DataColumn.Expression.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlr
fSystemDataDataColumnClassExpressionTopic.asp
Unfortunately Distinct is not one of the supported functions.
What I've done is create a second table that has primary keys that match the
columns that I want to count, plus a count column. Then for each row in my
primary table I add or update the count in this second table. I use
DataTable.Rows.Find to find the matching row...
> The filter in the Compute I don't really want because I'd like to count
> distinct on all rows..but the method forces me ot have a filter expression
You can pass null for the filter to have it process all rows.
For a good tutorial on ADO.NET as well as a good desk reference once you
know ADO.NET see David Sceppa's book "Microsoft ADO.NET - Core Reference"
from MS press
Hope this helps
Jay
> I have a single DataTable in a DataSet. It has 4 columns and i'd like to
> get a handful of counts of unique items in 3 of the 4 columns.
[quoted text clipped - 11 lines]
> thanks
> mike