window functions
Window functions are a special category of built-in functions. They produce one output value for each input
row, like scalar functions such as length() or substr(). Yet like aggregate
functions, they also examine the contents of multiple input rows to compute each output value.