public static void GroupQueryTest() { MsSqlContext context = new MsSqlContext(DbHelper.ConnectionString); object ret = null; var q = context.Query <User>(); var r = q.GroupBy(a => a.Id).Having(a => a.Id > 1).Select(a => new { a.Id, Count = AggregateFunctions.Count(), Sum = AggregateFunctions.Sum(a.Id), Max = AggregateFunctions.Max(a.Id), Min = AggregateFunctions.Min(a.Id), Avg = AggregateFunctions.Average(a.Id) }).ToList(); q.GroupBy(a => a.Age).Having(a => a.Age > 1).Select(a => new { a.Age, Count = AggregateFunctions.Count(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Avg = AggregateFunctions.Average(a.Age) }).ToList(); var r1 = q.GroupBy(a => a.Age).Having(a => AggregateFunctions.Count() > 0).Select(a => new { a.Age, Count = AggregateFunctions.Count(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Avg = AggregateFunctions.Average(a.Age) }).ToList(); var g = q.GroupBy(a => a.Gender); //g = g.ThenBy(a => a.Name); //g = g.Having(a => a.Id > 0); //g = g.Having(a => a.Name.Length > 0); var gq = g.Select(a => new { Count = AggregateFunctions.Count() }); //gq = gq.Skip(1); //gq = gq.Take(100); //gq = gq.Where(a => a > -1); ret = gq.ToList(); var c = gq.Count(); ConsoleHelper.WriteLineAndReadKey(); }
public static void AggregateQuery() { IQuery <User> q = context.Query <User>(); q.Select(a => AggregateFunctions.Count()).First(); /* * SELECT COUNT(1) AS "C" FROM "USERS" "USERS" WHERE ROWNUM < 2 */ q.Select(a => new { Count = AggregateFunctions.Count(), LongCount = AggregateFunctions.LongCount(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Average = AggregateFunctions.Average(a.Age) }).First(); /* * SELECT COUNT(1) AS "COUNT",COUNT(1) AS "LONGCOUNT",SUM("USERS"."AGE") AS "SUM",MAX("USERS"."AGE") AS "MAX",MIN("USERS"."AGE") AS "MIN",AVG("USERS"."AGE") AS "AVERAGE" FROM "USERS" "USERS" WHERE ROWNUM < 2 */ var count = q.Count(); /* * SELECT COUNT(1) AS "C" FROM "USERS" "USERS" */ var longCount = q.LongCount(); /* * SELECT COUNT(1) AS "C" FROM "USERS" "USERS" */ var sum = q.Sum(a => a.Age); /* * SELECT SUM("USERS"."AGE") AS "C" FROM "USERS" "USERS" */ var max = q.Max(a => a.Age); /* * SELECT MAX("USERS"."AGE") AS "C" FROM "USERS" "USERS" */ var min = q.Min(a => a.Age); /* * SELECT MIN("USERS"."AGE") AS "C" FROM "USERS" "USERS" */ var avg = q.Average(a => a.Age); /* * SELECT AVG("USERS"."AGE") AS "C" FROM "USERS" "USERS" */ ConsoleHelper.WriteLineAndReadKey(); }
public static void AggregateQuery() { IQuery <User> q = context.Query <User>(); q.Select(a => AggregateFunctions.Count()).First(); /* * SELECT TOP (1) COUNT(1) AS [C] FROM [Users] AS [Users] */ q.Select(a => new { Count = AggregateFunctions.Count(), LongCount = AggregateFunctions.LongCount(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Average = AggregateFunctions.Average(a.Age) }).First(); /* * SELECT TOP (1) COUNT(1) AS [Count],COUNT_BIG(1) AS [LongCount],CAST(SUM([Users].[Age]) AS INT) AS [Sum],MAX([Users].[Age]) AS [Max],MIN([Users].[Age]) AS [Min],CAST(AVG([Users].[Age]) AS FLOAT) AS [Average] FROM [Users] AS [Users] */ var count = q.Count(); /* * SELECT COUNT(1) AS [C] FROM [Users] AS [Users] */ var longCount = q.LongCount(); /* * SELECT COUNT_BIG(1) AS [C] FROM [Users] AS [Users] */ var sum = q.Sum(a => a.Age); /* * SELECT CAST(SUM([Users].[Age]) AS INT) AS [C] FROM [Users] AS [Users] */ var max = q.Max(a => a.Age); /* * SELECT MAX([Users].[Age]) AS [C] FROM [Users] AS [Users] */ var min = q.Min(a => a.Age); /* * SELECT MIN([Users].[Age]) AS [C] FROM [Users] AS [Users] */ var avg = q.Average(a => a.Age); /* * SELECT CAST(AVG([Users].[Age]) AS FLOAT) AS [C] FROM [Users] AS [Users] */ ConsoleHelper.WriteLineAndReadKey(); }
public static void AggregateQuery() { IQuery <User> q = context.Query <User>(); q.Select(a => AggregateFunctions.Count()).First(); /* * SELECT COUNT(1) AS `C` FROM `Users` AS `Users` LIMIT 0,1 */ q.Select(a => new { Count = AggregateFunctions.Count(), LongCount = AggregateFunctions.LongCount(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Average = AggregateFunctions.Average(a.Age) }).First(); /* * SELECT COUNT(1) AS `Count`,COUNT(1) AS `LongCount`,CAST(SUM(`Users`.`Age`) AS SIGNED) AS `Sum`,MAX(`Users`.`Age`) AS `Max`,MIN(`Users`.`Age`) AS `Min`,AVG(`Users`.`Age`) AS `Average` FROM `Users` AS `Users` LIMIT 0,1 */ var count = q.Count(); /* * SELECT COUNT(1) AS `C` FROM `Users` AS `Users` */ var longCount = q.LongCount(); /* * SELECT COUNT(1) AS `C` FROM `Users` AS `Users` */ var sum = q.Sum(a => a.Age); /* * SELECT CAST(SUM(`Users`.`Age`) AS SIGNED) AS `C` FROM `Users` AS `Users` */ var max = q.Max(a => a.Age); /* * SELECT MAX(`Users`.`Age`) AS `C` FROM `Users` AS `Users` */ var min = q.Min(a => a.Age); /* * SELECT MIN(`Users`.`Age`) AS `C` FROM `Users` AS `Users` */ var avg = q.Average(a => a.Age); /* * SELECT AVG(`Users`.`Age`) AS `C` FROM `Users` AS `Users` */ ConsoleHelper.WriteLineAndReadKey(); }
public static void GroupQuery() { object ret = null; var q = context.Query <TestEntity>(); var gq = q.GroupBy(a => a.F_Int32); gq = gq.Having(a => a.F_Int32 > 1 && AggregateFunctions.Count() > 1); ret = gq.Select(a => new { a.F_Int32, Count = AggregateFunctions.Count(), Sum = AggregateFunctions.Sum(a.F_Int32), Max = AggregateFunctions.Max(a.F_Int32), Min = AggregateFunctions.Min(a.F_Int32), Avg = AggregateFunctions.Average(a.F_Int32) }).ToList(); ConsoleHelper.WriteLineAndReadKey(); }
public static void GroupQuery() { IQuery <User> q = context.Query <User>(); IGroupingQuery <User> g = q.Where(a => a.Id > 0).GroupBy(a => a.Age); g = g.Having(a => a.Age > 1 && AggregateFunctions.Count() > 0); g.Select(a => new { a.Age, Count = AggregateFunctions.Count(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Avg = AggregateFunctions.Average(a.Age) }).ToList(); /* * SELECT "USERS"."AGE" AS "AGE",COUNT(1) AS "COUNT",SUM("USERS"."AGE") AS "SUM",MAX("USERS"."AGE") AS "MAX",MIN("USERS"."AGE") AS "MIN",AVG("USERS"."AGE") AS "AVG" FROM "USERS" "USERS" WHERE "USERS"."ID" > 0 GROUP BY "USERS"."AGE" HAVING ("USERS"."AGE" > 1 AND COUNT(1) > 0) */ ConsoleHelper.WriteLineAndReadKey(); }
public static void GroupQuery() { IQuery <User> q = context.Query <User>(); IGroupingQuery <User> g = q.Where(a => a.Id > 0).GroupBy(a => a.Age); g = g.Having(a => a.Age > 1 && AggregateFunctions.Count() > 0); g.Select(a => new { a.Age, Count = AggregateFunctions.Count(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Avg = AggregateFunctions.Average(a.Age) }).ToList(); /* * SELECT [Users].[Age] AS [Age],COUNT(1) AS [Count],CAST(SUM([Users].[Age]) AS INT) AS [Sum],MAX([Users].[Age]) AS [Max],MIN([Users].[Age]) AS [Min],CAST(AVG([Users].[Age]) AS FLOAT) AS [Avg] FROM [Users] AS [Users] WHERE [Users].[Id] > 0 GROUP BY [Users].[Age] HAVING ([Users].[Age] > 1 AND COUNT(1) > 0) */ ConsoleHelper.WriteLineAndReadKey(); }
public static void GroupQuery() { IQuery <User> q = context.Query <User>(); IGroupingQuery <User> g = q.Where(a => a.Id > 0).GroupBy(a => a.Age); g = g.Having(a => a.Age > 1 && AggregateFunctions.Count() > 0); g.Select(a => new { a.Age, Count = AggregateFunctions.Count(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Avg = AggregateFunctions.Average(a.Age) }).ToList(); /* * SELECT `Users`.`Age` AS `Age`,COUNT(1) AS `Count`,CAST(SUM(`Users`.`Age`) AS SIGNED) AS `Sum`,MAX(`Users`.`Age`) AS `Max`,MIN(`Users`.`Age`) AS `Min`,AVG(`Users`.`Age`) AS `Avg` FROM `Users` AS `Users` WHERE `Users`.`Id` > 0 GROUP BY `Users`.`Age` HAVING (`Users`.`Age` > 1 AND COUNT(1) > 0) */ ConsoleHelper.WriteLineAndReadKey(); }
protected List <SaleProduct> Query(Expression <Func <OrderInfo, bool> > _where, out decimal daySale, out decimal totalAmount) { var cabinetList = context.Query <Cabinet>().Where(o => o.hotel == hotelInfo.id).ToList(); var query = context.Query <OrderInfo>().Where(_where).LeftJoin <Product>((a, b) => a.product == b.id) .Select((a, b) => new SaleProduct { name = b.name, code = b.code, price1 = a.price1, id = a.product, saleTime = a.date }); var groupQuery = query.GroupBy(o => o.id).Select(o => new SaleProduct { minTime = AggregateFunctions.Min(o.saleTime), maxTime = AggregateFunctions.Max(o.saleTime), name = AggregateFunctions.Max(o.name), code = AggregateFunctions.Max(o.code), salesCount = AggregateFunctions.Count(), totalAmount = AggregateFunctions.Sum(o.price1) }); var list = groupQuery.ToList(); if (list.Count != 0) { totalAmount = list.Sum(o => o.totalAmount).ObjToInt(0).CentToRMB(0); var totalDay = list.Max(o => o.maxTime).Subtract(list.Min(o => o.minTime)).Days; if (totalDay != 0 && cabinetList.Count != 0) { daySale = Math.Round(totalAmount / totalDay / cabinetList.Count); } else { daySale = 0; } } else { daySale = 0; totalAmount = 0; } return(list); }
public static void AggregateFunctionTest() { MsSqlContext context = new MsSqlContext(DbHelper.ConnectionString); var q = context.Query <User>(); q = q.Where(a => a.Id > 0); var xxx = q.Select(a => AggregateFunctions.Count()).First(); q.Select(a => new { Count = AggregateFunctions.Count(), LongCount = AggregateFunctions.LongCount(), Sum = AggregateFunctions.Sum(a.Age), Max = AggregateFunctions.Max(a.Age), Min = AggregateFunctions.Min(a.Age), Average = AggregateFunctions.Average(a.Age) }).First(); var count = q.Count(); var longCount = q.LongCount(); var sum = q.Sum(a => a.Age); var max = q.Max(a => a.Age); var min = q.Min(a => a.Age); var avg = q.Average(a => a.Age); Console.WriteLine(1); }
protected List <SaleProduct> Query(Expression <Func <OrderInfo, bool> > _where, out int totalSum, out decimal totalAmount) { var query = context.Query <OrderInfo>().Where(_where).LeftJoin <Product>((a, b) => a.product == b.id) .Select((a, b) => new SaleProduct { name = b.name, code = b.code, price1 = a.price1, id = a.product, saleTime = a.date }); var groupQuery = query.GroupBy(o => o.id).Select(o => new SaleProduct { minTime = AggregateFunctions.Min(o.saleTime), maxTime = AggregateFunctions.Max(o.saleTime), name = AggregateFunctions.Max(o.name), code = AggregateFunctions.Max(o.code), salesCount = AggregateFunctions.Count(), totalAmount = AggregateFunctions.Sum(o.price1) }); var list = groupQuery.ToList(); if (list.Count != 0) { totalAmount = list.Sum(o => o.totalAmount).ObjToInt(0).CentToRMB(0); totalSum = list.Sum(o => o.salesCount).ObjToInt(0); } else { totalSum = 0; totalAmount = 0; } return(list); }
public AppointmentData Add(AddAppointmentDataInput input) { AppointmentData entity = new AppointmentData(); string _Code = (this.DbContext.Query <AppointmentData>().Where(a => a.BusinessID == input.BusinessID).Select(a => AggregateFunctions.Count()).First() + 1).ToString(); while (_Code.Length < 4) { _Code = "0" + _Code; } entity.Id = IdHelper.CreateGuid(); entity.CreateTime = DateTime.Now; entity.AppointmentDate = input.AppointmentDate; entity.BusinessID = input.BusinessID; entity.FileID = input.FileID; entity.MALU_Code = input.Code + _Code; entity.MamberID = input.MamberID; entity.State = input.State; return(this.DbContext.Insert(entity)); }
public bool IsOKPeriod(AddPeriodTimeInput p) { return(this.DbContext.Query <PeriodTime>().Where(a => a.SeveraWeeks == p.SeveraWeeks && a.StratTime == p.StratTime && a.EndTime == p.EndTime).Select(a => AggregateFunctions.Count()).First() == 0); }
public List <SelBusinessInput> GetBusListByPlace(string PlaceId) { var q = this.DbContext.Query <MALU_Business>().LeftJoin(this.DbContext.Query <PlaceInfo>(), (b, p) => b.PlaceId == p.Id) .LeftJoin(this.DbContext.Query <PeriodTime>(), (b, p, per) => b.PeriodTimeID == per.Id). LeftJoin(this.DbContext.Query <TransactionInfo>(), (b, p, per, t) => b.TransactionID == t.Id); List <SelBusinessInput> view = q.Select((b, p, per, t) => new SelBusinessInput { Id = b.Id, AppointmentNum = b.AppointmentNum, TransactionID = b.TransactionID, PlaceName = p.PlaceName, PlaceAdderss = p.Address, PlaceId = b.PlaceId, TranName = t.TransactionName, PeriodTimeId = per.Id, PeriodTime = per.StratTime + "-" + per.EndTime, }).Where(a => a.PlaceId == PlaceId).ToList(); for (int i = 0; i < view.Count; i++) { string BiD = view[i].Id; view[i].LineUpNumber = this.DbContext.Query <AppointmentData>().Where(a => a.BusinessID == BiD && a.State != -1).Select(a => AggregateFunctions.Count()).First(); try { view[i].NowAppCode = this.DbContext.Query <AppointmentData>().Where(a => a.BusinessID == BiD && a.State == 1).Select(a => a.MALU_Code).First(); } catch { view[i].NowAppCode = ""; } } return(view); }
public int SelectNumforKeyName(string Name) { return(this.DbContext.Query <MALU_DefaultSetting>().Where(a => a.KeyName == Name).Select(a => AggregateFunctions.Count()).First()); }