linq 中group by怎么用

作者&投稿:鄞虾 (若有异议请与网页底部的电邮联系)
linq 中如何group by sum怎么写?~

SQL:select * from A,B where A.cpID=B.cpID and A.cbID=B.cbID
LINQ:var p = from t1 in a
from t2 in b
from t3 in c
where t1.cpid equal t2.cpid and t1.cbid equal t3.cbid
select new
{
t1,
t2.cpid
}
linq 也能实现 sum、groupby 的效果的,网络上很多介绍,去看看就明白了,不过还是推荐做视图来处理

手动建立表达式树吧,比较麻烦,你在MSDN上找Dynamic Linq,有文档的。

  linq 中group by的具体用法如下:

  1.计数

  语句描述:Linq使用Group By和Count得到每个CategoryID中产品的数量。

  说明:先按CategoryID归类,取出CategoryID值和各个分类产品的数量。

  2.带条件计数

  语句描述:Linq使用Group By和Count得到每个CategoryID中断货产品的数量。

  说明:先按CategoryID归类,取出CategoryID值和各个分类产品的断货数量。 Count函数里,使用了Lambda表达式,Lambda表达式中的p,代表这个组里的一个元素或对象,即某一个产品。

  3.Where限制

  语句描述:根据产品的―ID分组,查询产品数量大于10的ID和产品数量。这个示例在Group By子句后使用Where子句查找所有至少有10种产品的类别。

  说明:在翻译成SQL语句时,在最外层嵌套了Where条件。

  4.多列(Multiple Columns)

  语句描述:Linq使用Group By按CategoryID和SupplierID将产品分组。

  说明:既按产品的分类,又按供应商分类。在by后面,new出来一个匿名类。这里,Key其实质是一个类的对象,Key包含两个Property:CategoryID、SupplierID。用g.Key.CategoryID可以遍历CategoryID的值。

  5.表达式(Expression)

  语句描述:Linq使用Group By返回两个产品序列。第一个序列包含单价大于10的产品。第二个序列包含单价小于或等于10的产品。

  说明:按产品单价是否大于10分类。其结果分为两类,大于的是一类,小于及等于为另一类。



1.简单形式:

1.var q = 2.from p in db.Products 3.group p by p.CategoryID into g 4.select g; 语句描述:Linq使用Group By按CategoryID划分产品。

说明:from p in db.Products 表示从表中将产品对象取出来。group p by p.CategoryID into g表示对p按CategoryID字段归类。其结果命名为g,一旦重新命名,p的作用域就结束了,所以,最后select时,只能select g。

2.最大值

1.var q = 2.from p in db.Products 3.group p by p.CategoryID into g 4.select new { 5.g.Key, 6.MaxPrice = g.Max(p => p.UnitPrice) 7.}; 语句描述:Linq使用Group By和Max查找每个CategoryID的最高单价。

说明:先按CategoryID归类,判断各个分类产品中单价最大的Products。取出CategoryID值,并把UnitPrice值赋给MaxPrice。

3.最小值

1.var q = 2.from p in db.Products 3.group p by p.CategoryID into g 4.select new { 5.g.Key, 6.MinPrice = g.Min(p => p.UnitPrice) 7.}; 语句描述:Linq使用Group By和Min查找每个CategoryID的最低单价。

说明:先按CategoryID归类,判断各个分类产品中单价最小的Products。取出CategoryID值,并把UnitPrice值赋给MinPrice。

4.平均值

1.var q = 2.from p in db.Products 3.group p by p.CategoryID into g 4.select new { 5.g.Key, 6.AveragePrice = g.Average(p => p.UnitPrice) 7.}; 语句描述:Linq使用Group By和Average得到每个CategoryID的平均单价。

说明:先按CategoryID归类,取出CategoryID值和各个分类产品中单价的平均值。

5.求和

1.var q = 2.from p in db.Products 3.group p by p.CategoryID into g 4.select new { 5.g.Key, 6.TotalPrice = g.Sum(p => p.UnitPrice) 7.};


景泰县17747154322: linq 中group by怎么用 -
寇荀复方: linq 中group by的具体用法如下:1.计数语句描述:Linq使用Group By和Count得到每个CategoryID中产品的数量.说明:先按CategoryID归类,取出CategoryID值和各个分类产品的数量.2.带条件计数语句描述:Linq使用Group By和Count...

景泰县17747154322: sql语句中的group by的用法,求大神指点. -
寇荀复方: 利用GROUP BY 子句进行分组计算查询使用得更加广泛.GROUP BY短语格式如下: GROUP BY GroupColumn[,GroupColunm…][HAVING FilterCondition] 说明: 1.可按一列或多列分组,还可以用HAVING进一步限定分组的条件. 2.GROUP BY...

景泰县17747154322: LINQ什么时候使用SelectMany和GroupBy -
寇荀复方: 这是两个从头到脚都不同的东西.SelectMany是用来选择数据的,返回的是选择的对象的集合,GroupBy是用来分组的,返回的是原始数据分组后的集合,返回结果是集合的集合.

景泰县17747154322: linq 中如何group by sum怎么写? -
寇荀复方: SQL:select * from A,B where A.cpID=B.cpID and A.cbID=B.cbID LINQ:var p = from t1 in a from t2 in b from t3 in c where t1.cpid equal t2.cpid and t1.cbid equal t3.cbid select new { t1, t2.cpid } linq 也能实现 sum、groupby 的效果的,网络上很多介绍,去看看就明白了,不过还是推荐做视图来处理

景泰县17747154322: linq分组查询 -
寇荀复方: 不知道你这集合是否构建在你的查询之上啊? ---- 如果构建在你这个查询之上的话:var tq=( from a in table where a.t_CreatDate >= DateTime.Today group a by a.Type into g select new { PQ=g.Count() }).Count(p=>p.PQ==1)

景泰县17747154322: SQL中的group by语句和order by语句怎么用?最好能有个例子
寇荀复方: group by是分组的,比如你要查询一个班级的学生,各省分别有多少人.(表结构是学生表,有学号,姓名,所在省,备注等.) 就应该用到group by了,如: SELECT 所在省,COUNT(*) AS 学生数 FROM 学生 GROUP BY 所在省 Order by是用来排序的.如,你想要把上例中查得的结果按人数从大到小,或从小到大排列,可以加这么一句, ORDER BY 学生人数 (DESC或ASC); 好了,就这么个用法. 后面括号的关键字,指明了从大到小,还是从小到大,只能写一个,并且不要括号.

景泰县17747154322: linq 的 group by 如何实现 sql中如select type from tb - user where type = 'g' group by type
寇荀复方: LINQ 里面的 group by 之后. 你从 query 里面, 拿到的只是 Group. 然后你还好每个 Group ,再 for each 一下, 才能拿到 这个组里面的东西 就拿你的例子来说. var query = from m in dc.tb_FoodsMenu where m.Type == type group m by menu....

景泰县17747154322: Linq 多表多字段group by
寇荀复方: 你先要理解清楚多表跟分组的关系,即分组是针对多表连接后的数据进行分组,这个顺序理解了就好办了,先将两个表做连接,然后将需要取出的数据new一个匿名对象出来,然后针对这个对象进行group by 操作.

景泰县17747154322: group by要怎么用!! -
寇荀复方: 语法 SELECT 字段表 FROM 表 WHERE标准 [GROUP BY 分组字段表] Group by 是SQL Server 中常用的一种语法,语法如下: [ GROUP BY [ ALL ] group_by_expression [ ,...n ] [ WITH { CUBE | ROLLUP } ] ] 1、最常用的就是这种语法,如下:...

景泰县17747154322: 关于SQL语句的group by用法. -
寇荀复方: 是同时安a和b进行分组,也就是根据“a,b”这两列一对,作为唯一限制,相同的分一组

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网