c# - 如何合并一张表中的两个计数查询?
问题描述
第一个查询:
Id | UserId | projectId |date | Status
1 | 1 | 1 | 2020 | PENDDING
2 | 1 | 2 | 2020 | DONE
3 | 2 | 1 | 2020 | PENDDING
我尝试了两个查询:第一个是关于 X 项目的所有用户工作,例如 id = 1
var FirstQery = context.table1.where (C => C.ProjectId == 1).count();
第二个查询是获取项目 x 具有“完成”状态的用户数
var SecondQery = context.table1.where (C => C.ProjectId == 1 && C.Status == "DONE").count();
我希望返回对象只有两个值:countNumberUserWithXProject 和 countNumberUserByXProjectHaveXStatus
解决方案
这是已知的假分组方法。
var query =
from t in context.table1
where t.ProjectId == 1
group t by 1 into g
select new
{
Count = g.Count(),
DoneCount = g.Sum(x => x.Status == "DONE" ? 1 : 0)
}
var result = query.FirstOrDefault();
推荐阅读
- javascript - 制作一个 for 循环来计算特定单元格,然后将结果写入行中的最后一个单元格
- angular - 如何在 http 请求 URL 中使用 Observable?
- r - 固定效应 plm 函数的负调整 R 平方
- javascript - Javascript中字段的特定正则表达式
- python - Python for 循环不会获取列表中的每个元素
- css - 中心 ::before 伪选择器
- android - 如何在 android pie 中添加锁屏交互小部件
- java - @JsonIgnore 仅针对某些特定端点
- c++ - 如何使用openCV图像编译使用opencv的cpp
- python - Jetson xavier NX 带蜂鸣器