Linq中的group by多表多字段,Sum求和
//Line to Sql 写法
var data = (from a in Items
group a by new { a.GroupId, a.Id } into b
//orderby new ComparerItem() { GroupId = b.Key.GroupId, Id = b.Key.Id } descending
.where(o => o.Id>1000)
select new
{
GroupId = b.Key.GroupId,
Id = b.Key.Id,
Count = b.Sum(c => c.Count),
Weight = b.Sum(c => c.Weight)
}).OrderBy(t => t.GroupId).ThenBy(t => t.Id);
items 是一个包含4个字段(GroupId, Id, Count, Weight)的list.
效果,按GroupId,Id 分组 ,并统计Count字段和Weight字段
//labmda 写法 var data = items.GroupBy( t=> t.GroupBy,t=> t.Id)
.where( f=> f.Id>)
.Select( g=> new
{
GroupId = g.GroupId,
Id = g.Id,
Count = g.Count( ),
SumWeight = g.Sum( x=>x.Weight)
}
);
//多表写法 from a in TableA
join b in TableB on a.Id equals b.aId
where ((b.Type == || b.Type == || b.Type == ) && b.State == )
group new { a.Id, b.Name,b,CreateDate } by new { a.Id, b.Name } into g
select (new Class1 { Id = g.Key.Id, Name = g.Key.Name ?? "" }); class Class1
{
public int Id { get; set; }
publid string Name { get; set; }
}
from c in Customers
join p in Purchases
on c.ID equals p.CustomerID
group p.Price by new
{
p.Date.Year,
c.Name
}
into salesByYear
orderby salesByYear.Key.Year descending
select new
{
TotalPrice= salesByYear.Sum(),
Year=salesByYear.Key.Year,
Name=salesByYear.Key.Name
}
Linq中的group by多表多字段,Sum求和的更多相关文章
- Linq中的group by多表多字段
在sql中,如果有group by,那么select的字段只能包含分组内容,或者count.sum.avg这些统计字段. 但在linq里面,是:group 你想要什么字段 by 分组字段 比如: va ...
- Linq中join & group join & left join 的用法
Linq中join & group join & left join 的用法 2013-01-30 11:12 12154人阅读 评论(0) 收藏 举报 分类: C#(14) 文章 ...
- 【SQL】oralce中使用group by和case when按照条件求和
假设我们有一个Salary 薪水表.这个表的字段分别为:id, name, salary, level 在这个表中,每个人有不同的级别(level).我们要根据不同的级别统计相同级别员工的薪水总和. ...
- sql 查找数据库中某字符串所在的表及字段
declare @str varchar(100) set @str='是否严格控制' --要搜索的字符串 declare @s varchar(8 ...
- linq中的group by
现有如下需求,要求统计int数组中每个整数的个数: ,,,,,,,,,,,, }; var linq = from item in arrInt group item by item into g// ...
- Linq中left join之多表查询
using System; using System.Collections; using System.Collections.Generic; using System.Data; using S ...
- hive中sql解析出对应表和字段的实现
import java.io.IOException; import java.util.HashMap; import java.util.HashSet; import java.util.Map ...
- ecshop中user.php中的$user说明---user表加字段
今天想对user表加个字段,打开user.php发现有个$user,其中它有很多方法,像登陆,注册,退出.都要用到它.可找了大半天也找不到这个函数调用的是哪个类.又坚持找了半天,发现$user在ini ...
- hive中sql解析出对应表和字段的调查
---恢复内容开始--- .阿里的druid中的sql parser有各种关系数据库sql的解析,但hive的不支持. druid初期的版本中是包含hive的,将以前版本中的hive dialect对 ...
随机推荐
- 2015.1.10 解决DataGridView SelectionChanged事件自动触发问题
DataGridView SelectionChanged事件总是在数据源更改时自动触发,这点很讨厌. 可用CellClick和KeyUp事件和一个函数替代SelectionChanged事件 pri ...
- Windows安装mysql 5.7.*.zip步骤
1.去官网上下载.zip格式的文件. 2.解压到一个文件夹,这里我用D:\MySql表示 3.在D:\MySql\mysql-5.7.17-winx64下新建my.ini配置文件 黄色背景色的地方需要 ...
- windows配置apache tomcat 集群
1,安装包 httpd-2.2.22-win32-x86-no_ssl.msi 两个tomcat6 2,配置apachehttpd---配置的过程中有错误可以查看logs文件夹下的log文件进行排 ...
- Python之整数,浮点数和布尔类型
整数和浮点数有那个四则运算: 两种类型的数可以直接进行加减,当整数和浮点数进行加减的时候,结果会自动的变为浮点数,其中除法运算是“/”来表示的, 而余数的算术符号是“%”来表示的.如果是为了求除完后的 ...
- struts2学习笔记(5)拦截器
继承AbstractInterceptor类,在类中完成拦截器的功能,只需实现intercept方法即可,提供了init()和destroy()的空实现 示例:显示执行action所用的时间 ①在sr ...
- re.I re.L re.M re.S re.U re.X
- C++中的友元
友元函数 在类的声明中可以声明某一个函数作为该类的友元函数,然后该函数就可以访问类中的private数据成员了. demo: /* wirten by qianshou 2013/12/6 04:13 ...
- gitlab 添加ssh秘钥
在创建新的ssh秘钥对之前,要先确认一下电脑中是否已经有了一对秘钥: Git Bash on Windows / GNU/Linux / macOS / PowerShell: cat ~/.ssh/ ...
- JavaScript相关知识和经验的碎片化记录
1.JavaScript提示“未结束的字符串常量”错误解决方法 1.1 JavaScript引用时,使用的字符语言不一致. 比如:<script type=”text/javascript ...
- 《Effective Java》第8章 通用程序设计
第47条:了解和使用类库 Top 100 Java Libraries on Github 2016 Library Number of Projects Type % of projects jun ...