/*
This macro calculates the aggregation of a metric over a partition of a column,
ordered by another column, with a window of x and y preceeding rows.

It's designed to be placed within a SELECT statement.
*/
{% macro calculate_aggregation_between_preceeding_x_and_y(
    metric,
    aggregation="sum",
    partition_by="id_deal",
    order_by="date",
    x=12,
    y=1
) %}
    {{ aggregation }} ({{ metric }}) over (
        partition by {{ partition_by }}
        order by {{ order_by }} rows between {{ x }} preceding and {{ y }} preceding
    ) as {{ aggregation }}_{{ metric }}
{% endmacro %}
