Slick-pg v0.14.0 发布,Slick 的 PostgresSQL 扩展

Tu_Minglei
 Tu_Minglei
发布于 2016年05月09日
收藏 2

Slick-pg v0.14.0 发布。

重大更新:

  • 支持聚合函数

  • 支持窗口函数

注:这些功能其实两年前就实现了,但合并到 slick 一直没有成功,所以,这次就干脆全做在 slick-pg 这端了。

----------------------------------------

让我们来感受一下,

// 聚合函数

object AggregateLibrary {
  val PercentileDisc = new SqlFunction("percentile_disc")
}
def percentileDisc(f: Double) = agg.OrderedAggFuncBuilder(AggLibrary.PercentileDisc, List(LiteralNode(f)))
...
percentileDisc(0.5d).filter(t.y < 130d).within(t.x desc)
//sql: percentile_disc(0.5) within group ( order by "x" desc) filter ( where "y" < 130.0)
// 窗口函数

object AggregateLibrary {
  val Avg = new SqlFunction("avg")
}
def avg[T : JdbcType](c: Rep[T]) = agg.AggFuncRep[T](AggLibrary.Avg, List(c.toNode))
...
avg(salary).over.partitionBy(dept).orderBy(dept,salary)
                 .rowsFrame(RowCursor.UnboundPreceding, RowCursor.CurrentRow)
//sql: avg(salary) over (partition by dept order by dept, salary rows between unbounded preceding and current row)
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Slick-pg v0.14.0 发布,Slick 的 PostgresSQL 扩展
加载中
返回顶部
顶部