在SQL中,这对我来说很容易......
SELECT browser, browser_version, page_name, COUNT(*) as cnt
FROM traffic
GROUP BY browser, browser_version, page_name
这将为浏览器,browser_version,page_name的每个唯一组合返回一行,以及重复次数。
我想在Linq做同样的事情,但我不知道该怎么做。
顺便说一句,在这种情况下我不使用SQL,因为数据不是来自SQL。它来自Windows Azure Table Storage。我正在使用内存中的数据。
答案 0 :(得分:2)
var query =
from t in traffic
group t by new { t.browser, t.browser_version, t.page_name } into g
select new
{
g.Key.browser,
g.Key.browser_version,
g.Key.page_name,
Count = g.Count()
}
答案 1 :(得分:1)
你会使用类似的方法:
var results = traffic.GroupBy(t => new { t.browser, t.browser_version, t.page_name });
foreach(var group in results)
{
Console.WriteLine("{0}/{1}/{2} has {3} items.",
group.Key.browser,
group.Key.browser_version,
group.Key.page_name,
group.Count());
}