Skip to main content

Window OVER Formatting

Break PARTITION BY / ORDER BY inside OVER clause when the spec is complex.

Default: windowOverNewline=width_aware — breaks when OVER spec exceeds half maxLineWidth. Always: windowOverNewline=always — always breaks OVER contents vertically. Never: windowOverNewline=never — OVER contents stay inline.

Default (width-aware): short OVER stays inline

select row_number() over (order by a) from t
select row_number() over (order by a) from t

Always: OVER breaks vertically

select row_number() over (partition by a order by b) from t
select row_number() over (partition by a order by b) from t

Always: single clause in OVER

select row_number() over (order by a) from t
select row_number() over (order by a) from t

Never: complex OVER stays inline

select row_number() over (partition by a order by b) from t
select row_number() over (partition by a order by b) from t

Always: OVER with frame spec

select sum(a) over (order by b rows between unbounded preceding and current row) from t
select sum(a) over (order by b rows between unbounded preceding and current row)
from t

Always: PARTITION BY + ORDER BY + frame

select sum(a) over (partition by dept order by hire_date rows unbounded preceding) from t
select
sum(a) over (partition by dept order by hire_date rows unbounded preceding)
from t