DataTable中数据记录的统计
我们在使用Sql Server这些数据库时,可以轻松的通过Sum、Aver、Count等统计出相关结果,那么,在已经把数据检索出来的DataSet(DataTable)中呢?特别是通过Web Service获得了DataSet,这个时候,可是没有办法回头去修改Select语句来获取这些统计了。那么在DataSet/DataTable中是否可以进行统计呢?答案是肯定的。

  在MSDN中,有一篇MS推荐的统计方法,就是逐行对数据进行求和统计,这个方法,其实有等于无(或许这个方法只是针对于DataGrid求取小计用吧),因为这个方法中采用的是DataGrid的ItemDataBind事件来对数据进行累加,同我们手动写代码统计没有什么区别。
  
  本文介绍一个简单的方法,不需要逐条记录进行计算就可以轻松的获得DataTable中的记录统计结果。这个简单的方法就是调用功能强大的DataTable的函数Compute。
  
  一、调用说明(仅以C#为例,下同):
  
  public object Compute(string strExpression,string strFilter)
  
  参数:
  
  strExpression:要计算的表达式字符串,基本上类似于Sql Server中的统计表达式
  
  strFilter:统计的过滤字符串,只有满足这个过滤条件的记录才会被统计
  
  二、调用举例:
  
  以下示例,假设一个产品销售表table,描述某商场中各促销员销售的实际记录,包含字段为:姓名(Name)、性别(Sex,0为女,1为男)、生日(Birthday)、销售产品的代码(ProID)、销售的数量(Quantity)、销售价格(Price)。
  
  1.统计所有性别为女的销售员的数量:
  table.Compute(Count(*),Sex=0);
  
  2.统计所有销售员中年龄大于20岁的
  table.Compute(Count(*),Birthday<'+today);//today为今天的日期字符串
  
  3.统计销售产品的平均价格
  table.Compute(Aver(Price),true);
  
  4.统计产品代码为1的产品销售数量:
  table.Compute(Sum(Quantity),ProID=1);
  
  5.统计所有产品的销售总金额:
  要统计总销售金额,由于table中不存在某项产品某个促销员销售的金额数据,但我们可以通过Quantity*Price来获得。比如:
  table.Compute(Sum(Quantity*Price),true);
  
  这里一个问题是:DataTable的统计功能没有SqlServer强,这个统计是错误的,因为Compute的统计不具备Sum(Quantity*Price)这样数据的功能。那怎么办呢?
  
  对于这样复杂数据的统计,我们可以在DataTable中创建一个新的字段来完成,比如Amount,同时设置该字段的Expression为Quantity*Price,这样我们就可以使用统计功能了:
  table.Compute(Sum(Amount),true);

DataTable中数据记录的统计相关推荐

  1. mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用sel ...

  2. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  3. C#中将DataTable中数据导出到csv文件中

    在上一篇博文[C#读取CSV文件的方法]中,我介绍了读取csv文件中数据的方法,现在我来介绍下将datatable中的数据导出到csv文件中的方法,废话不 多说了,deme程序的代码如下: prote ...

  4. (转)【mysql元数据库】使用information_schema.tables查询数据库和数据表信息 ---数据记录大小统计...

    转:https://www.cnblogs.com/ssslinppp/p/6178636.html https://segmentfault.com/q/1010000007268994?_ea=1 ...

  5. c# 把DataTable中数据批量导入新的sqlite的db文件中

    需求 : 使用sqlite数据库, 将文件A.db 中某张数据表的数据,备份到文件B.db中. 解决方案: 使用dataTableUpdate.不推荐 可以使用事务进行批量处理. 目的: 避免手动拼接 ...

  6. MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql

    mysql学习笔记之八(单表数据记录查询) 查询数据记录,就是指从数据库对象中获取所要求的数据记录.mysql中提供了各种不同方式的数据查询方法. 一.简单数据记录查询 select field1,f ...

  7. 在DataTable中更新、删除数据

    在DataTable中选择记录 /*在DataTable中选择记录*//* 向DataTable中插入记录如上,更新和删除如下:* ----但是在更新和删除前,首先要找出要更新和删除的记录.* 一种方 ...

  8. 将DataTable中的数据导入到数据库中

    上次在根据excel的文件的路径提取其中表的数据到DataSet中 一文中介绍了将Excel文件中的数据读取到DataSet中的方法,今天我来介绍下我曾经在项目中用到的一个将DataTable中的数据 ...

  9. datatable 导入mysql 解决_将DataTable中的数据导入到数据库中

    上次在 小小的改动即可. /// /// 将DataTable中数据写入数据库中 /// /// /// public static bool WriteDataToDB(DataTable dt) ...

最新文章

  1. 从Docker 到Jenkins 到Ansible的部署经验
  2. 基于SpringBoot+Vue前后端分离管理系统
  3. Django两天搭建个人博客
  4. java学习笔记2022.2.11
  5. 震撼!豆瓣评分9.3,这部纪录片带你感受生命之重!
  6. 【转】extern “C“以及__declspec(dllexport) 讲解和def文件dll导出方法
  7. VS2010 MFC多文档中的工具栏CMFCToolBar停靠的问题
  8. 用Python爬取Bilibili视频,难吗?
  9. 团战开黑必备“良药”了解一下!
  10. 【系统分析师之路】2012年上系统分析师下午论文真题
  11. opencv-python API 官网文档
  12. 【实战讲解】数据血缘落地实施
  13. 产品思维训练 | 常见的用户增长手段有哪些?
  14. Stefan's Nutch Documentation
  15. Jmeter循环获取JDBC查询结果及断言数据库查询结果
  16. [题解]CodeForces1208G Polygons
  17. 什么是SEO?SEO是什么职业?
  18. SAP ECC 和 S4HANA Material 物料库存管理的模型比较
  19. InjectFix原理学习(实现修复加法的热更)
  20. 操作系统纯净版 下载地址

热门文章

  1. fb50 sap 报记账码未定义_SAP隐秘的角落:记账代码Posting Key
  2. java servlet 路径_JavaServlet 路径书写总结
  3. Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)
  4. Opencv-python 图像处理基础知识
  5. KMP-next数组
  6. 深度学习--TensorFlow(7)拟合(过拟合处理)(数据增强、提前停止训练、dropout、正则化、标签平滑)
  7. 《概率机器人》里程计运动模型gmapping中代码解析
  8. Maya 2022中的硬表面建模技术学习视频教程
  9. Linux多线程管理: 多线程编程
  10. [NOIP模拟测试9]题(Problem) 题解 (组合数全家桶+dp)