linq to sql选择distinct和count of distinct

时间:2015-06-01 11:57:30

标签: vb.net linq-to-sql

我正在努力创建一个linq2 sql查询。我有一个包含媒体记录的表格。其中一列是媒体类型,例如CD,DVD等。

我需要提取一个列表,该列表将为我提供每种媒体类型(选择Distinct(mediatype))以及该媒体类型的计数(Count(mediatype))

我已经能够创建一个独特的列表,但似乎无法弄清楚如何合并计数。 我有......

Dim medialist = (From m In dc.tbDatas
                 Select m.mediatype).Distinct()

任何帮助表示感谢。

... UPDATE 这是我最新的查询

Dim meadialist = (FROM m In dc.tbDatas
                  WHERE m.PassFail = True AndAlso m.DateProcessed.HasData
                  Group By m Into Group
                  Select MediaType = m.MediaType, MediaCount = Group.Count()).ToArray()

更新2 .... 这是给出我需要的结果的查询...即MediaType列表和该媒体类型的计数。

Dim meadialist = (FROM m In dc.tbDatas
                  WHERE m.PassFail = True AndAlso m.DateProcessed.HasData
                  Group By m.MediaType Into Group
                  Select MediaType, MediaCount = Group.Count()).ToArray()

1 个答案:

答案 0 :(得分:1)

如果您正在尝试计算不同媒体的数量:

Dim medialistCount = medialist.Count()

如果您正在尝试计算每种媒体类型的数量:

Dim medialist = (From m in dc.tbDatas 
    Group By m Into Group
    Select MediaType = m.mediatype, MediaTypeCount = Group.Count()).ToArray()

第二个linq查询将每种类型的媒体类型分组并计算为匿名类型数组。

For Each m in medialist
    Console.WriteLine(m)
Next

示例输出:

{ MediaType = Type1, MediaTypeCount = 2 }
{ MediaType = Type2, MediaTypeCount = 1 }