dsl.StandardFunction.kt Maven / Gradle / Ivy
@file:JvmName("StandardFunction")
package dsl
/**
* 聚合函数COUNT(*)
* @return QueryAggFunction 聚合函数表达式
*/
fun count(): QueryAggFunction {
return QueryAggFunction("COUNT", listOf())
}
/**
* 聚合函数COUNT
* @param query Query 待聚合的表达式
* @return QueryAggFunction 聚合函数表达式
*/
fun count(query: Query): QueryAggFunction {
return QueryAggFunction("COUNT", listOf(query))
}
/**
* 聚合函数COUNT
* @param column String 待聚合的列名
* @return QueryAggFunction 聚合函数表达式
*/
fun count(column: String): QueryAggFunction {
return QueryAggFunction("COUNT", listOf(QueryColumn(column)))
}
/**
* 带有DISTINCT聚合函数COUNT
* @param query Query 待聚合的表达式
* @return QueryAggFunction 聚合函数表达式
*/
fun countDistinct(query: Query): QueryAggFunction {
return QueryAggFunction("COUNT", listOf(query), true)
}
/**
* 带有DISTINCT聚合函数COUNT
* @param column String 待聚合的列名
* @return QueryAggFunction 聚合函数表达式
*/
fun countDistinct(column: String): QueryAggFunction {
return QueryAggFunction("COUNT", listOf(column(column)), true)
}
/**
* 聚合函数SUM
* @param query Query 待聚合的表达式
* @return QueryAggFunction 聚合函数表达式
*/
fun sum(query: Query): QueryAggFunction {
return QueryAggFunction("SUM", listOf(query))
}
/**
* 聚合函数SUM
* @param column String 待聚合的列名
* @return QueryAggFunction 聚合函数表达式
*/
fun sum(column: String): QueryAggFunction {
return QueryAggFunction("SUM", listOf(QueryColumn(column)))
}
/**
* 聚合函数AVG
* @param query Query 待聚合的表达式
* @return QueryAggFunction 聚合函数表达式
*/
fun avg(query: Query): QueryAggFunction {
return QueryAggFunction("AVG", listOf(query))
}
/**
* 聚合函数AVG
* @param column String 待聚合的列名
* @return QueryAggFunction 聚合函数表达式
*/
fun avg(column: String): QueryAggFunction {
return QueryAggFunction("AVG", listOf(QueryColumn(column)))
}
/**
* 聚合函数MAX
* @param query Query 待聚合的表达式
* @return QueryAggFunction 聚合函数表达式
*/
fun max(query: Query): QueryAggFunction {
return QueryAggFunction("MAX", listOf(query))
}
/**
* 聚合函数MAX
* @param column String 待聚合的列名
* @return QueryAggFunction 聚合函数表达式
*/
fun max(column: String): QueryAggFunction {
return QueryAggFunction("MAX", listOf(QueryColumn(column)))
}
/**
* 聚合函数MIN
* @param query Query 待聚合的表达式
* @return QueryAggFunction 聚合函数表达式
*/
fun min(query: Query): QueryAggFunction {
return QueryAggFunction("MIN", listOf(query))
}
/**
* 聚合函数MIN
* @param column String 待聚合的列名
* @return QueryAggFunction 聚合函数表达式
*/
fun min(column: String): QueryAggFunction {
return QueryAggFunction("MIN", listOf(QueryColumn(column)))
}
/**
* 窗口函数用聚合函数RANK
* @return QueryAggFunction 聚合函数表达式
*/
fun rank(): QueryAggFunction {
return QueryAggFunction("RANK", listOf())
}
/**
* 窗口函数用聚合函数DENSE_RANK
* @return QueryAggFunction 聚合函数表达式
*/
fun denseRank(): QueryAggFunction {
return QueryAggFunction("DENSE_RANK", listOf())
}
/**
* 窗口函数用聚合函数ROW_NUMBER
* @return QueryAggFunction 聚合函数表达式
*/
fun rowNumber(): QueryAggFunction {
return QueryAggFunction("ROW_NUMBER", listOf())
}