【发布时间】:2018-12-13 14:25:41
【问题描述】:
我写了一个小 linq 查询,目前无法编译
var count = (from data in Data
join data2 in Data on data.UserId equals data2.UserId
group data2 by data2.UserId into gr
where gr.Max(b => b.Date) == data.Date // data variable not available
select data.Id).Count(); // data variable not available
我的问题是我不能在 group by 子句之后重用 data 变量。我怎样才能做到这一点?
有关信息,这是我尝试转换的 SQL 查询。
SELECT COUNT(data.Id)
FROM Data data
INNER JOIN
(SELECT UserId, MAX(Date) AS MaxDate
FROM Data
GROUP BY UserId) g
ON data.UserId = g.UserId
AND data.Date = g.MaxDate
【问题讨论】:
-
您的 linq 的
group by与 SQL 不对应。您正在对联接结果进行分组。