GitHub user bhargavmehta01 added a comment to the discussion: The bar chart for 
different period values

You don't need two filters for this: put each period inside its own metric, and 
the bar chart puts two bars next to each other for every store.

**Fixed periods (no setup)**

In a **Bar Chart**, set **X-axis** = `store` and add two **Custom SQL** metrics:

```sql
-- label: June 2026
SUM(CASE WHEN sale_date >= '2026-06-01' AND sale_date < '2026-07-01' THEN 
amount END)

-- label: July 2026
SUM(CASE WHEN sale_date >= '2026-07-01' AND sale_date < '2026-08-01' THEN 
amount END)
```

Set the chart's time range to **No filter**, or to a range that covers both 
periods, so the outer WHERE doesn't cut one of them off.

**Periods you pick with two filters**

Turn on `ENABLE_TEMPLATE_PROCESSING`. Then build a virtual dataset that exposes 
the date column twice, once for each period, and reads each period's filter 
with `get_time_filter(..., remove_filter=True)`:

```sql
{% set a = get_time_filter('period_a', default='2026-06-01 : 2026-07-01', 
remove_filter=True) %}
{% set b = get_time_filter('period_b', default='2026-07-01 : 2026-08-01', 
remove_filter=True) %}
SELECT
  store,
  sale_date AS period_a,
  sale_date AS period_b,
  CASE WHEN sale_date >= {{ a.from_expr }} AND sale_date < {{ a.to_expr }} THEN 
amount END AS amount_a,
  CASE WHEN sale_date >= {{ b.from_expr }} AND sale_date < {{ b.to_expr }} THEN 
amount END AS amount_b
FROM sales
```

In the chart:
- X-axis: `store`
- Metrics: `SUM(amount_a)` labeled "Period A", and `SUM(amount_b)` labeled 
"Period B"
- Filters: one time-range filter on `period_a` and one on `period_b`

`remove_filter=True` keeps those two filters out of the outer WHERE, so they 
don't cancel each other out. `from_expr` and `to_expr` are already formatted 
for your database, so don't quote them. Make sure `period_a` and `period_b` are 
marked **Is temporal** in the dataset's columns.

**If the comparison is always relative** (this month against the same month 
last year), you don't need any of this. Use a time-series Bar Chart with 
**Advanced analytics → Time comparison → Time shift**, for example `1 year 
ago`. It takes free text such as `28 days`.

How I checked: I ran the CASE WHEN SQL on a small sample table (2 stores, 3 
months), and it returned one June and one July total per store, with the May 
rows left out. I read the `get_time_filter` signature and `remove_filter` 
handling in `superset/jinja_context.py` at the 6.1.0 tag. I haven't run the 
Jinja dataset in a live Superset instance yet.


GitHub link: 
https://github.com/apache/superset/discussions/43332#discussioncomment-18873361

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: 
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to