Pirstuk

Untitled

Aug 8th, 2025
2,293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PostgreSQL 1.16 KB | Source Code | 0 0
  1. {% set tf = get_time_filter("date", remove_filter=True, target_type='DATETIME') %}
  2.  
  3. SELECT
  4.   product,
  5.   /* продажи за выбранный на фильтре период */
  6.   sumIf(qty, date >= {{ tf.from_expr }} AND date < {{ tf.to_expr }})                           AS qty_cur,
  7.   /* продажи за такой же период год назад */
  8.   sumIf(qty, date >= addYears({{ tf.from_expr }}, -1) AND date < addYears({{ tf.to_expr }}, -1)) AS qty_prev,
  9.   /* абсолютное отклонение и % */
  10.   sumIf(qty, date >= {{ tf.from_expr }} AND date < {{ tf.to_expr }})
  11.   - sumIf(qty, date >= addYears({{ tf.from_expr }}, -1) AND date < addYears({{ tf.to_expr }}, -1)) AS qty_yoy_diff,
  12.   if(
  13.     sumIf(qty, date >= addYears({{ tf.from_expr }}, -1) AND date < addYears({{ tf.to_expr }}, -1)) = 0,
  14.     NULL,
  15.     (
  16.       sumIf(qty, date >= {{ tf.from_expr }} AND date < {{ tf.to_expr }})
  17.       - sumIf(qty, date >= addYears({{ tf.from_expr }}, -1) AND date < addYears({{ tf.to_expr }}, -1))
  18.     )
  19.     / sumIf(qty, date >= addYears({{ tf.from_expr }}, -1) AND date < addYears({{ tf.to_expr }}, -1))
  20.   ) AS qty_yoy_pct
  21. FROM sales
  22. GROUP BY product
  23.  
Tags: superset
Advertisement
Add Comment
Please, Sign In to add comment