[英]linq, group by and count
我有一個有幾個成員的工會列表,另一個有按工會點擊的表格。 需要一個報告,列出每個聯合,每種成員的數量以及點擊次數(頁面瀏覽量)。
點擊位於帶有日期和unionID的單獨表格上
這很接近,但實際上並沒有我想要的結果。 該計數顯示成員總數,但不顯示點擊總數。 我如何獲得總點擊次數? (對點擊表中與UnionID匹配的記錄進行計數)
(from c in db.view_Members_Details
join h in db.tbl_Clicks on c.unionID equals h.unionID
group c by new { c.UnionName, h.unionID } into g
select new
{
TotalClicks = g.Count(),
UnionName = g.Key.UnionName,
userTypeID1 = g.Where(x => x.UnionName.Equals(g.Key.UnionName) && x.userTypeID.Equals(1)).Count(),
userTypeID2= g.Where(x => x.UnionName.Equals(g.Key.UnionName) && x.userTypeID.Equals(2)).Count(),
userTypeID3= g.Where(x => x.UnionName.Equals(g.Key.UnionName) && x.userTypeID.Equals(3)).Count(),
}).ToList();
結果應該是:
Clicks Count | Union Name | userTypeID1 Count | userTypeID2 Count | userTypeID3 Count |
我認為您不需要WHERE中的第一個條件,因為您已經在UnionName
上分組了。
g.Count(x => x.userTypeID == 3) //etc for 1, 2, 3
至於點擊次數,請嘗試以下操作:
TotalClicks = g.Count(x => x.unionID == g.Key.unionID)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.