[
  {
    "name": "cume_dist",
    "arguments": ["<expr>"],
    "returns": "number",
    "help": "Returns the cumulative distribution of numbers yielded by given expression. This requires buffering whole file or group!"
  },
  {
    "name": "cummax",
    "arguments": ["<expr>"],
    "returns": "number",
    "help": "Returns the cumulative maximum of the numbers yielded by given expression."
  },
  {
    "name": "cummin",
    "arguments": ["<expr>"],
    "returns": "number",
    "help": "Returns the cumulative minimum of the numbers yielded by given expression."
  },
  {
    "name": "cumsum",
    "arguments": ["<expr>"],
    "returns": "number",
    "help": "Returns the cumulative sum of the numbers yielded by given expression."
  },
  {
    "name": "dense_rank",
    "arguments": ["<expr>"],
    "returns": "number",
    "help": "Returns the dense rank (there will be no gaps, but ties remain possible for a same rank) of numbers yielded by given expression. This requires buffering whole file or group!"
  },
  {
    "name": "frac",
    "arguments": ["<expr>", "decimals?"],
    "returns": "number",
    "help": "Returns the fraction represented by numbers yielded by given expression over the total sum of them. This requires buffering whole file or group!"
  },
  {
    "name": "lag",
    "arguments": ["<expr>", "steps?", "<expr>?"],
    "returns": "any",
    "help": "Returns a value yielded by given expression, lagged by n steps or 1 step by default. Can take a second expression after the number of steps to return a default value for rows that come before first lagged value."
  },
  {
    "name": "lead",
    "arguments": ["<expr>", "steps?", "<expr>?"],
    "returns": "any",
    "help": "Returns a value yielded by given expression, leading by n steps or 1 step by default. Can take a second expression after the number of steps to return a default value for rows that come after last lead value."
  },
  {
    "name": "ntile",
    "arguments": ["k", "<expr>"],
    "returns": "number",
    "help": "Splits numbers yielded by given expression into `k` nearly equal-sized consecutive groups. This requires buffering whole file or group!"
  },
  {
    "name": "percent_rank",
    "arguments": ["<expr>"],
    "returns": "number",
    "help": "Normalized rank of numbers yielded by given expression. This requires buffering whole file or group!"
  },
  {
    "name": "rank",
    "arguments": ["<expr>"],
    "returns": "number",
    "help": "Returns the arbitrary rank (ties will will be broken in input order) of numbers yielded by given expression. This requires buffering whole file or group!"
  },
  {
    "name": "rolling_avg",
    "arguments": ["window_size", "<expr>"],
    "returns": "number",
    "help": "Returns the rolling average in given window size of numbers yielded by given expression. Same as `rolling_mean`."
  },
  {
    "name": "rolling_mean",
    "arguments": ["window_size", "<expr>"],
    "returns": "number",
    "help": "Returns the rolling mean in given window size of numbers yielded by given expression. Same as `rolling_avg`."
  },
  {
    "name": "rolling_stddev",
    "arguments": ["window_size", "<expr>"],
    "returns": "number",
    "help": "Returns the rolling population standard deviation in given window size of numbers yielded by given expression."
  },
  {
    "name": "rolling_sum",
    "arguments": ["window_size", "<expr>"],
    "returns": "number",
    "help": "Returns the rolling sum in given window size of numbers yielded by given expression."
  },
  {
    "name": "rolling_var",
    "arguments": ["window_size", "<expr>"],
    "returns": "number",
    "help": "Returns the rolling population variance in given window size of numbers yielded by given expression."
  },
  {
    "name": "row_index",
    "arguments": [],
    "returns": "number",
    "help": "Returns the 0-based row index."
  },
  {
    "name": "row_number",
    "arguments": [],
    "returns": "number",
    "help": "Returns the 1-based row number."
  }
]