我有一个关于LINQ to SQL的问题。我想在LINQ中编写以下查询:
SELECT DISTINCT([Column]),
COUNT([Column]) as [Count]
FROM [Table]
我可以在1个查询中执行此操作吗?或者我是否必须先选择我的不同列,然后为每个选择计数?这看起来非常笨拙和沉重(n平方)。
答案 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() }