как подсчитать с помощью linq / linq2sql? - PullRequest
0 голосов
/ 06 апреля 2011
<@[for i in linq.TrueIncidents -> i.RecTime, i.Name ] @> |> query |> Array.ofSeq

Как я могу получить количество разных имен?

просто count(Name) where Name = somename...

Я думаю, что сначала я должен выбрать здесь форму Имена с помощью |> Seq.distinctBy (весело x -> x.Name) а затем сделайте Seq.Count () различными выборами, где Name будет одним из имен, а затем объедините все выборы ... действительно странным способом.

Или позже я могу использовать его как объект с закрытием со счетчиками int ref для каждого различаемого Имени ...

Я понимаю, что моё объяснение может быть немного грязным, поэтому спросите, не можете ли вы его получить. Я хочу знать, есть ли способ использовать Count (Name), где Name = OneOfNames внутри закрытия или linq2sql?

1 Ответ

2 голосов
/ 06 апреля 2011

Я не могу скомпилировать, чтобы убедиться, что это работает в данный момент, но попробуйте следующее:

<@ linq.TrueIncidents
   |> Seq.groupBy (fun i -> i.Name)
   |> Seq.map (fun (name, is') -> name, Seq.length is') @>
|> query
|> Map.ofSeq

Это должно дать вам Map<string, int> каждого имени и соответствующего числа вхождений.

...