选择Distinct Count Question

时间:2011-03-18 02:26:01

标签: asp.net linq-to-sql

我有一个关于LINQ to SQL的问题。我想在LINQ中编写以下查询:

SELECT DISTINCT([Column]),
       COUNT([Column]) as [Count]
FROM [Table]

我可以在1个查询中执行此操作吗?或者我是否必须先选择我的不同列,然后为每个选择计数?这看起来非常笨拙和沉重(n平方)。

2 个答案:

答案 0 :(得分:2)

该查询不合法,因为您使用的是聚合(COUNT)而未对您选择的列进行分组。

你想要的是这样的:

select [Column], Count([Column]) as [Count] from [Table] group by [Column]

这很容易在LINQ to SQL中表达。

from x in context.Table 
group x by x.Column into grp
select new { Column = grp.Key, Count = grp.Count() }

答案 1 :(得分:1)

尝试

from r in table
group r by r.Something into g
select new { Something = g.Key, Count = g.Count() }