首页 新闻 会员 周边

ef linq表达式实现数据按天、按周、按月分组统计(SOS)别沉啊!

0
悬赏园豆:20 [已解决问题] 解决于 2013-04-29 14:08

这两天遇到一个很棘手的事,现在正使用ef code first做一个项目,项目已经完成了,现在客户提了个需求,要做个统计图,分别实现数据按日、按周、按月分组统计,但是在写linq表达式的时候,不知道这样的分组表达式怎么写,我先写按周分组统计的,因为实现其实一个,其它的都出来了,但是还没找到方法,求大家指点啊和提示!比如说现在有个数据表是这样的:Id(主键int) categoryName(nvarchar) Click(int)   CreateTime(datetime) ,现在按周分组统计每周的点击量

< >
分享
最佳答案
1

我有个类似的, 你试试

 

var data = from c in items
group c by c.ManifestDate.Day into g
select new { g.Key ,Total= g.Sum(n=>n.ReferenceCount) };

收获园豆:15
Yu | 专家六级 |园豆:12980 | 2013-04-11 13:22

非常感谢你的帮忙,你这个我写过的,你这个会出现这样的情况,假如数据库里人3月3号的数据,4月3号的数据,按照你这样的方式写,得出一结果是3月3号和4月3号的数据是同一天的,会把所有系统里3号当天的数据加在一起,我要的是不是这样的结果,我想要3月3号的数据和其它月份的数据都各是各的,就是以天统计

anech | 园豆:92 (初学一级) | 2013-04-11 18:57
var data = from c in query.AsEnumerable()
                       group c by Condition(c.CreateDate.Value,"day") into g
                       select new { g.Key, Total = g.Sum(n => n.CharsRecords.Count) };



string Condition(DateTime date,string type)
        {
            if (type == "day")
            {
                return date.ToString("yyyy-M-d");
            }
            else if (type == "month")
            {
                return date.ToString("yyyy-M");
            }
            return date.Year.ToString();
        }

 

@流星147: 

Yu | 园豆:12980 (专家六级) | 2013-04-12 08:36

@Yu: 非常感谢,但是还是不行,,出现这个错误。

anech | 园豆:92 (初学一级) | 2013-04-12 15:21

@流星147: 

from c in query.AsEnumerable()
Yu | 园豆:12980 (专家六级) | 2013-04-12 16:38

@Yu: 这个是可以实现,但不是长远之计啊,数据量大我担心有性能瓶颈,不过还是感谢。

anech | 园豆:92 (初学一级) | 2013-04-12 17:01

别沉啊,欢迎大家来探讨

anech | 园豆:92 (初学一级) | 2013-04-12 20:18

@anech: 你有毒 别人都给你提供解决方法了

豆浆111 | 园豆:200 (初学一级) | 2019-05-24 09:48
其他回答(2)
0

首先是 按月 在按 日 在按  周 分组  1 月 怎么取(字符截取 createtime里面的月 日,同理),

                                                2 周怎么取 好像有个函数传入时间 得到周吧

收获园豆:5
齐0.0凡 | 园豆:184 (初学一级) | 2013-04-11 11:25

有点不明白,能上点代码没,如果我先把createtime转tostring,linq表达试不支持

支持(0) 反对(0) anech | 园豆:92 (初学一级) | 2013-04-11 11:34
1

我和楼主遇到同样的问题  也在寻求答案  我的还涉及到 数据库中  

DATEPART(wk,date)

这个函数  不知道用EF 怎么转换

Karson007 | 园豆:204 (菜鸟二级) | 2013-08-07 21:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册