import { kysely } from "https://deno.land/x/kysely_postgrs_js_dialect@v0.27.4/deps.ts";
const { AggregateFunctionBuilder } = kysely;
Adds an over
clause (window functions) after the function.
Examples
const result = await db
.selectFrom('person')
.select(
(eb) => eb.fn.avg<number>('age').over().as('average_age')
)
.execute()
The generated SQL (PostgreSQL):
select avg("age") over() as "average_age"
from "person"
Also supports passing a callback that returns an over builder, allowing to add partition by and sort by clauses inside over.
const result = await db
.selectFrom('person')
.select(
(eb) => eb.fn.avg<number>('age').over(
ob => ob.partitionBy('last_name').orderBy('first_name', 'asc')
).as('average_age')
)
.execute()
The generated SQL (PostgreSQL):
select avg("age") over(partition by "last_name" order by "first_name" asc) as "average_age"
from "person"
Parameters
optional
over: OverBuilderCallback<DB, TB>Returns
AggregateFunctionBuilder<DB, TB, O>