C# DataTable表内数据计算问题!!紧急求助!! 50
DataTable如图所示。计算id1和id2之间的weight,方法是当同时存在于一个post里时,weight+1;当在同一个时间同一个帖子发生时,weight+2者...
DataTable如图所示。 计算id1和id2之间的weight,方法是当同时存在于一个post里时,weight+1;当在同一个时间同一个帖子发生时,weight+2者所包含帖子数的乘积。如:id1和id2同时存在于post1和post3,所以weight1=2;又因第3条数据(id1)和最后两条数据(id2)同时发生在一个帖子里的同一个时间点,weight2=1*2=2。所以,weight=weight1+weight2 。
自己想的是提取每个post和time为固定值的子表格,但是越套越乱了额,不知道这种思路是否可取?
各位大神求思路求代码啊 麻烦注释清楚方便学习 非常感谢
并不是database导入的数据 是从csv转过来的 所有没有database实体数据源存在 展开
自己想的是提取每个post和time为固定值的子表格,但是越套越乱了额,不知道这种思路是否可取?
各位大神求思路求代码啊 麻烦注释清楚方便学习 非常感谢
并不是database导入的数据 是从csv转过来的 所有没有database实体数据源存在 展开
展开全部
var query = from t in dt.AsEnumerable()
group t by new
{
t1 = t.Field<int>("id"),
t2 = t.Field<int>("post")
} into m
group m by new
{
t3 = m.Key.t2
}
into n
select new
{
Post = n.Key.t3,
Count = n.Count()
};
int weight1 = query.Count(p => p.Count == 2);
weight1算法如上:
weight2实在没看懂你描述的什么意思;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
小兄弟,虽然你看到的是这些数据,但是datatable一般是从数据库转化,而来的,做这种统计运算,一般是在数据库里面通过sql写聚合函数,然后再读出来绑定到datatable上。当然如果你不想从数据源源头操作,也行,是通过DataTable.Select() 写条件语句,但是比较麻烦,要自己写一些子方法和判断条件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是数据库的数据吧,这样的话为什么不直接在数据库中select出来,比如weight1应该是
select sum(a.count) from (select count(*) as count from tablename group by id,post) a
weight2=1*2那个1我没看明白是什么意思,但应该是跟数据select count(*) from tablename group by id,time相关的。
select sum(a.count) from (select count(*) as count from tablename group by id,post) a
weight2=1*2那个1我没看明白是什么意思,但应该是跟数据select count(*) from tablename group by id,time相关的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
木看懂你要表达的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询