簡體   English   中英

linq,分組並計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM