如何在datatable中使用groupby进行分组统计

本文介绍了在datatable中使用groupby进行分组统计,下面是为大家分享的效果图和实现代码:

实现效果

在SQL中我们可以使用groupby来进行分组统计,如果数据在datatable中该如何使用groupby呢,下面的方法可以实现groupby,代码如下:

 DataTable dt = new DataTable("cart");
      DataColumn dc1 = new DataColumn("areaid", Type.GetType("System.String"));
      DataColumn dc2 = new DataColumn("house", Type.GetType("System.String"));
      DataColumn dc3 = new DataColumn("seq", Type.GetType("System.String"));
      DataColumn dc4 = new DataColumn("remark", Type.GetType("System.String")); 

      dt.Columns.Add(dc1);
      dt.Columns.Add(dc2);
      dt.Columns.Add(dc3);
      dt.Columns.Add(dc4); 

      DataRow dr = dt.NewRow();
      dr["areaid"] = "北京";
      dr["house"] = "北京仓库";
      dr["seq"] = "2";
      dr["remark"] = "货到付款";
      dt.Rows.Add(dr); 

      DataRow dr1 = dt.NewRow();
      dr1["areaid"] = "北京";
      dr1["house"] = "上海仓库";
      dr1["seq"] = "1";
      dr1["remark"] = "货到付款";
      dt.Rows.Add(dr1); 

      DataRow dr2 = dt.NewRow();
      dr2["areaid"] = "上海";
      dr2["house"] = "上海仓库";
      dr2["seq"] = "1";
      dr2["remark"] = "货到付款";
      dt.Rows.Add(dr2); 

      DataRow dr3 = dt.NewRow();
      dr3["areaid"] = "上海";
      dr3["house"] = "北京仓库";
      dr3["seq"] = "1";
      dr3["remark"] = "货到付款";
      dt.Rows.Add(dr3); 

      var query = from t in dt.AsEnumerable()
            group t by new { t1 = t.Field<string>("areaid"), t2 = t.Field<string>("seq") } into m
            select new
            {
              areaid = m.Key.t1,
              seq = m.Key.t2,
              house = m.First().Field<string>("house"),
              rowcount = m.Count()
            }; 

       Console.WriteLine("区域 "+" 库房"+"  数量");
      foreach (var item in query.ToList())
      {
        if (item.rowcount>1)
        {
          MessageBox.Show(item.areaid+"---"+item.house);
        }
        Console.WriteLine(item.areaid+"---"+item.house+"---"+item.rowcount);
        Console.WriteLine("\r\n");
      }

在datatable中使用groupby进行分组统计就是通过上面的代码进行实现的,希望可以对大家的学习有所帮助。

(0)

相关推荐

  • Mysql中错误使用SQL语句Groupby被兼容的情况

    首先创建数据库hncu,建立stud表格. 添加数据: create table stud( sno varchar(30) not null primary key, sname varchar(30) not null, age int, saddress varchar(30) ); INSERT INTO stud VALUES('1001','Tom',22,'湖南益阳'); INSERT INTO stud VALUES('1002','Jack',23,'益阳'); INSERT

  • 浅析一个MYSQL语法(在查询中使用count)的兼容性问题

    简单来说就是在查询中使用count以及更多字段 复制代码 代码如下: select count(id),id,name from table 很尴尬的,我的环境是5.5的,这个是能获取到结果的,但是运行到服务器就不行了好吧,报了一个错误 复制代码 代码如下: #1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY claus

  • ms sql server中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)

    直接上代码: CREATE FUNCTION UNIX_TIMESTAMP (@ctimestamp datetime) RETURNS integer AS BEGIN /* Function body */ declare @return integer SELECT @return = DATEDIFF(SECOND,{d '1970-01-01'}, @ctimestamp) return @return END CREATE FUNCTION from_unixtime (@ts in

  • 如何在datatable中使用groupby进行分组统计

    本文介绍了在datatable中使用groupby进行分组统计,下面是为大家分享的效果图和实现代码: 实现效果 在SQL中我们可以使用groupby来进行分组统计,如果数据在datatable中该如何使用groupby呢,下面的方法可以实现groupby,代码如下: DataTable dt = new DataTable("cart"); DataColumn dc1 = new DataColumn("areaid", Type.GetType("Sy

  • python DataFrame数据分组统计groupby()函数的使用

    目录 groupby()函数 1. groupby基本用法 1.1 一级分类_分组求和 1.2 二级分类_分组求和 1.3 对DataFrameGroupBy对象列名索引(对指定列统计计算) 2. 对分组数据进行迭代 2.1 对一级分类的DataFrameGroupBy对象进行遍历 2.2 对二级分类的DataFrameGroupBy对象进行遍历 3. agg()函数 3.1一般写法_对目标数据使用同一聚合函数 3.2 对不同列使用不同聚合函数 3.3 自定义函数写法 4. 通过 字典 和 Se

  • C#对DataTable中的某列进行分组

    有时候我们从数据库中查询出来数据之后,需要按照DataTable的某列进行分组,可以使用下面的方法实现,代码如下: using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataTableGroupDemo { class Program { static voi

  • Python中的groupby分组功能的实例代码

    pandas中的DataFrame中可以根据某个属性的同一值进行聚合分组,可以选单个属性,也可以选多个属性: 代码示例: import pandas as pd A=pd.DataFrame([['Beijing',1.68,2300,'city','Yes'],['Tianjin',1.13,1293,'city','Yes'],['Shaanxi',20.56,3732,'Province','Yes'],['Hebei',18.77,7185,'Province','No'],['Qing

  • python中分组函数groupby和分组运算函数agg的使用

    目录 groupby: agg: 今天来介绍pandas中一个很有用的函数groupby,其实和hive中的groupby的效果是一样的,区别在于两种语言的写法问题.groupby在Python中的分组统计中很有用~ groupby: 首先创建数据: import pandas as pd import numpy as np df = pd.DataFrame({'A': ['a', 'b', 'a', 'c', 'a', 'c', 'b', 'c'], 'B': [2, 7, 1, 3, 3

  • pyodps中的apply用法及groupby取分组排序第一条数据

    目录 1.apply用法 2.取分组排序后的第一条数据 1.apply用法 apply在pandas里非常好用的,那在pyodps里如何去使用,还是有一些区别的,在pyodps中要对一行数据使用自定义函数,可以使用 apply 方法,axis 参数必须为 1,表示在行上操作. apply 的自定义函数接收一个参数,为上一步 Collection 的一行数据,用户可以通过属性.或者偏移取得一个字段的数据. iris.apply(lambda row: row.sepallength + row.s

  • C# 中的GroupBy的动态拼接问题及GroupBy<>用法介绍

    废话不多说了,直接给大家贴代码了,具体代码如下所示: public class Person { public string FirstName{set;get;} public string LastName{set;get;} public Person(){} public Person(string firstName, string lastName) { FirstName = firstName; LastName = lastName; } } List<Person> per

  • 如何在Django中使用聚合的实现示例

    在本文中,我想向您介绍如何在Django中使用聚合,聚合的含义是"内容相关项的集合,以便它们可以显示或链接到".在Django中,我们使用的情况例如: 用于在Django模型的数据库表中查找列的"最大值","最小值". 用于基于列在数据库表中查找记录的"计数". 用于查找一组相似对象的"平均值"值. 还用于查找列中的值的总和. 在大多数情况下,我们对数据类型为"整数","浮点数

  • C#在LINQ中使用GroupBy

    一.先准备要使用的类: 1.Person类: class Person { public string Name { set; get; } public int Age { set; get; } public string Gender { set; get; } public override string ToString() => Name; } 2.准备要使用的List,用于分组(GroupBy): List<Person> personList = new List<

  • JAVA8 stream中三个参数的reduce方法对List进行分组统计操作

    背景 平时在编写前端代码时,习惯使用lodash来编写'野生'的JavaScript; lodash提供来一套完整的API对JS对象(Array,Object,Collection等)进行操作,这其中就包括_.groupBy 和 _.reduce,即分组和'聚合'(reduce不知道该怎么翻译合适). 使用这些'野生'的API能够极大的提高我本人编写JS代码的效率.而JAVA8开始支持stream和lambda表达式,这些和lodash的API有很多类似的功能.因此我在熟悉lodash的前提下尝

随机推荐