0

各行にチーム ID、ユーザー ID、およびそのユーザーが代表者かどうかを示すブール値が含まれるテーブルがあります。ユーザーは複数のチームの代表者になることができ、チームは複数の代表者を持つことができます。私は、誰が最も多くの代表者であり、彼らが何チームの代表者であるかを調べようとしています. 実際、私はそれが誰であるかはあまり気にしません。彼らが何チームの代表であるかだけです。

以下を使用してSQLでこれを簡単に実行できますが、LINQでこれを記述する方法がわかりません。ストアド プロシージャはこのアプリケーションではめったに使用されず、一貫性を維持したいので、可能であれば避けたいと思います。

SELECT MAX(a.RepCount) as TeamMaxRepCount
FROM
(SELECT DelegateUserID, COUNT(*) AS RepCount
FROM TeamDelegates
GROUP BY DelegateUserID) as a
4

1 に答える 1

2

その逆です。例えば:

var x = TeamDelegates.GroupBy(t => t.DelegateUserID)
                     .Select(t => new {
                                          DelegateUserID = t.Key,
                                          RepCount = t.Count()
                                      })
                     .Max(t => t.RepCount);

これは、SQL クエリの正確な表現です。sa_ddam213これは、彼のコメントで述べたように単純化することさえできます。

于 2013-05-17T00:00:40.150 に答える