mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +08:00
完善聚合查询语法
This commit is contained in:
@ -20,6 +20,14 @@ namespace FreeSql {
|
||||
/// <returns></returns>
|
||||
string ToSql<TReturn>(Expression<Func<T1, TReturn>> select);
|
||||
|
||||
/// <summary>
|
||||
/// 执行SQL查询,返回指定字段的聚合结果
|
||||
/// </summary>
|
||||
/// <typeparam name="TReturn"></typeparam>
|
||||
/// <param name="select"></param>
|
||||
/// <returns></returns>
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, TReturn>> select);
|
||||
|
||||
/// <summary>
|
||||
/// 求和
|
||||
/// </summary>
|
||||
|
@ -6,6 +6,9 @@ namespace FreeSql {
|
||||
public interface ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> : ISelect0<ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class {
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMember>> column);
|
||||
|
@ -6,6 +6,9 @@ namespace FreeSql {
|
||||
public interface ISelect<T1, T2, T3> : ISelect0<ISelect<T1, T2, T3>, T1> where T1 : class where T2 : class where T3 : class {
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, T3, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, TMember>> column);
|
||||
|
@ -6,6 +6,9 @@ namespace FreeSql {
|
||||
public interface ISelect<T1, T2, T3, T4> : ISelect0<ISelect<T1, T2, T3, T4>, T1> where T1 : class where T2 : class where T3 : class where T4 : class {
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, T3, T4, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, TMember>> column);
|
||||
|
@ -6,6 +6,9 @@ namespace FreeSql {
|
||||
public interface ISelect<T1, T2, T3, T4, T5> : ISelect0<ISelect<T1, T2, T3, T4, T5>, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class {
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, TMember>> column);
|
||||
|
@ -6,6 +6,9 @@ namespace FreeSql {
|
||||
public interface ISelect<T1, T2, T3, T4, T5, T6> : ISelect0<ISelect<T1, T2, T3, T4, T5, T6>, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class {
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, TMember>> column);
|
||||
|
@ -6,6 +6,9 @@ namespace FreeSql {
|
||||
public interface ISelect<T1, T2, T3, T4, T5, T6, T7> : ISelect0<ISelect<T1, T2, T3, T4, T5, T6, T7>, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class {
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, TMember>> column);
|
||||
|
@ -6,6 +6,9 @@ namespace FreeSql {
|
||||
public interface ISelect<T1, T2, T3, T4, T5, T6, T7, T8> : ISelect0<ISelect<T1, T2, T3, T4, T5, T6, T7, T8>, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class {
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, TMember>> column);
|
||||
|
@ -6,6 +6,9 @@ namespace FreeSql {
|
||||
public interface ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9> : ISelect0<ISelect<T1, T2, T3, T4, T5, T6, T7, T8, T9>, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class {
|
||||
|
||||
List<TReturn> ToList<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
||||
string ToSql<TReturn>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TReturn>> select);
|
||||
|
||||
TReturn ToAggregate<TReturn>(Expression<Func<ISelectGroupingAggregate<T1>, ISelectGroupingAggregate<T2>, ISelectGroupingAggregate<T3>, ISelectGroupingAggregate<T4>, ISelectGroupingAggregate<T5>, ISelectGroupingAggregate<T6>, ISelectGroupingAggregate<T7>, ISelectGroupingAggregate<T8>, ISelectGroupingAggregate<T9>, TReturn>> select);
|
||||
|
||||
TMember Sum<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TMember>> column);
|
||||
TMember Min<TMember>(Expression<Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TMember>> column);
|
||||
|
@ -44,11 +44,41 @@ namespace FreeSql {
|
||||
}
|
||||
|
||||
public interface ISelectGroupingAggregate<T1> {
|
||||
/// <summary>
|
||||
/// 分组的数据
|
||||
/// </summary>
|
||||
T1 Key { get; set; }
|
||||
/// <summary>
|
||||
/// 记录总数
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
int Count();
|
||||
/// <summary>
|
||||
/// 求和
|
||||
/// </summary>
|
||||
/// <typeparam name="T3"></typeparam>
|
||||
/// <param name="column"></param>
|
||||
/// <returns></returns>
|
||||
T3 Sum<T3>(T3 column);
|
||||
/// <summary>
|
||||
/// 平均值
|
||||
/// </summary>
|
||||
/// <typeparam name="T3"></typeparam>
|
||||
/// <param name="column"></param>
|
||||
/// <returns></returns>
|
||||
T3 Avg<T3>(T3 column);
|
||||
/// <summary>
|
||||
/// 最大值
|
||||
/// </summary>
|
||||
/// <typeparam name="T3"></typeparam>
|
||||
/// <param name="column"></param>
|
||||
/// <returns></returns>
|
||||
T3 Max<T3>(T3 column);
|
||||
/// <summary>
|
||||
/// 最小值
|
||||
/// </summary>
|
||||
/// <param name="column"></param>
|
||||
/// <returns></returns>
|
||||
T3 Min<T3>(T3 column);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user