Lambda表达式 group by having问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lambda表达式 group by having问题相关的知识,希望对你有一定的参考价值。

SELECT code,COUNT(*) FROM Account GROUP BY Code having COUNT(*) > 1

我想转换成
list = session.QueryOver<T>()
.Where(expressionWhere)
.OrderBy(expressionOrderBy).Desc
.Skip(skipCount)
.Take(pageSize)
.List();
这种格式的,求大神帮忙

参考技术A 你试试这样写:
var list = (from t in Account //
group t by t.code
into g
select new

code = g.Key,
count = g.Count()
into c
where c.count > 2
select c).ToList();

linq中order by 和group by (含lambda表达式实现)以及综合案例

3.linq group by(多列)

 

1.简单的实现方式:

 
         var list =  from T in Transactions
                     group T by T.ZhiFuQuDao into g
                     select g; 

 

技术分享图片

语句描述:Linq使用Group By 统计交易流水的支付渠道方式(支付宝或微信等等)。

说明:这里将查询结果 命名为g,一旦重新命名,T 的作用域就结束了,所以,最后select时,只能select g。

 

2.分类统计各个分类的最大值(Max)、最小值(Min)、平均值(Average)和求和(Sum)

 

               var q =  from T in Transactions
                        group T by T.ZhiFuQuDao into g  
                        select new {  
                                   g.Key,  
                                  MaxPrice = g.Max(T => T.Moneys)  
                            }; 

 


技术分享图片

语句描述:Linq使用Group By和Max查找交易流水每种支付渠道的最高金额的一笔交易。

说明:先按ZhiFuQuDao进行分类,然后获取每个分类的最高一笔交易金额赋给MaxPrice。最小值、平均值和求和实现和此类似,替换关键之即可

 

3.多列(Multiple Columns)

 

     var dateQDList =   from T in hisDZD  
                        group T by new  
                        {  
                         T.JiaoYiRQ,  
                         T.JiaoYiQDMC
                        }   into g  
                        select new  
                        {  
                         g.Key.JiaoYiRQ,  
                         g.Key.JiaoYiQDMC  
                        }; 
  
 

语句描述:Linq使用Group By按交易日期和交易渠名称将his对账单进行分组统计。

效果图如下

 技术分享图片

4. lambda group by(多列带表达式)

var dateQDList = hisDZD.GroupBy(t => new 
{
JiaoYiRQ=Convert.ToDateTime(t.JiaoYiRQ).ToString("yyyy-MM-dd"),
t.JiaoYiQDMC
}) .Select(g
=>new {
JiaoYiRQ = Convert.ToDateTime(g.Key.JiaoYiRQ).ToString("yyyy-MM-dd"),
JiaoYiQDMC = g.Key.JiaoYiQDMC
}).ToList();
技术分享图片

语句描述:Linq使用Group By按交易日期和交易渠名称将his对账单进行分组统计。

效果:同上

说了这么多不知道大家有没有理解和使用呢

最后留两道题给大家,看大家是否能学以致用

1:给“cdabe” 排序;

2:给"ABCCD,CDA,BCDD,DCA,ADC,BCD,CDCAB"将含有相同字母的进行分组并排序。

以上是关于Lambda表达式 group by having问题的主要内容,如果未能解决你的问题,请参考以下文章

having和group by的区别?

Group by、Count 和 Lambda 表达式

LINQ to Sql 左外连接与 Group By 和 Have 子句

linq中order by 和group by (含lambda表达式实现)以及综合案例

Python学习之旅—Mysql数据库之表操作(where+group by+having+order by)

order by 和 group by 的区别?