OverBuilder
class OverBuilder<DB, TB extends keyof DB> implements OperationNodeSource {}
constructor(props: OverBuilderProps);
$call<T>(func: (qb: this) => T): T;
orderBy<OE extends StringReference<DB, TB> | DynamicReferenceBuilder<any>>(orderBy: OE, direction?: OrderByDirectionExpression): OverBuilder<DB, TB>;
toOperationNode(): OverNode;
§Implements
§Constructors
§
new OverBuilder(props: OverBuilderProps)
[src]§Methods
§
$call<T>(func: (qb: this) => T): T
[src]Simply calls the provided function passing this
as the only argument. $call
returns
what the provided function returns.
§
orderBy<OE extends StringReference<DB, TB> | DynamicReferenceBuilder<any>>(orderBy: OE, direction?: OrderByDirectionExpression): OverBuilder<DB, TB>
[src]Adds an order by clause item inside the over function.
const result = await db
.selectFrom('person')
.select(
(eb) => eb.fn.avg<number>('age').over(
ob => ob.orderBy('first_name', 'asc').orderBy('last_name', 'asc')
).as('average_age')
)
.execute()
The generated SQL (PostgreSQL):
select avg("age") over(order by "first_name" asc, "last_name" asc) as "average_age"
from "person"
§
partitionBy(partitionBy: ReadonlyArray<PartitionByExpression<DB, TB>>): OverBuilder<DB, TB>
[src]Adds partition by clause item/s inside the over function.
const result = await db
.selectFrom('person')
.select(
(eb) => eb.fn.avg<number>('age').over(
ob => ob.partitionBy(['last_name', 'first_name'])
).as('average_age')
)
.execute()
The generated SQL (PostgreSQL):
select avg("age") over(partition by "last_name", "first_name") as "average_age"
from "person"