Quantcast
Channel: OSCHINA 社区最新新闻
Viewing all articles
Browse latest Browse all 44787

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

$
0
0

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)

Viewing all articles
Browse latest Browse all 44787

Trending Articles