Query.GroupBy 方法

GroupBy的用法的含义和SQL语句中的group by 子句类似。所以在使用GroupBy方法时,也需要确保所有在Select中已指定的非统计列,均已由GroupBy指定。 以T_User表为示例,结构如下:

ID

PK, Bigint

自增主键

UserName

varchar(32)

用户名

City

varchar(32)

所在城市

RegTime

datetime

注册时间

在sql语句中,要查询每个城市多少用户数:

 select count(ID), City from T_User group by City 

而同样的统计查询,使用Query来构建则是:

var t = new T_User();
using(Query q=new Query()){
        q.From(t);
        q.Select(t.ID.Count(), t.City);
        q.GroupBy(t.City);
        var rs = q.GetResult();
        // var stats = from row in rs.Rows
        //                select new {city = row[t.City].StringValue, count = row[t.ID.Count()].IntValue};
}

统计查询也可以和嵌套查询、联表查询结合产生更复杂的查询设计。


Ub.Data_GroupBy (last edited 2011-06-10 01:44:42 by small)