Emir
03/26/2025, 9:28 AMSELECT
CASE
WHEN SUM({fact/gross_revenue_percentile}) <= 0.2 THEN 60
WHEN SUM({fact/gross_revenue_percentile}) <= 0.4 THEN 48
WHEN SUM({fact/gross_revenue_percentile}) <= 0.6 THEN 36
WHEN SUM({fact/gross_revenue_percentile}) <= 0.8 THEN 24
WHEN SUM({fact/gross_revenue_percentile}) <= 1 THEN 12
ELSE 8
END
It's supposed to return a score based on the product's gross_revenue_percentile value. I created a simple table to see the score of an individual product. A screenshot of the table is attached below.
The problem is that even though I put a product id filter to see a single product, it returns all the products in the database. Why does it return all the products ignoring the product id filter? I tried to use BY clause in the metric definition but it didn't help.
Thanks in advance!Michael Ullock
03/26/2025, 11:13 AMMichael Ullock
03/26/2025, 3:46 PMSELECT SUM ( SELECT CASE WHEN (Gross revenue percentile) <= 0.2 THEN 60 WHEN (Gross revenue percentile) <= 0.4 THEN 48 WHEN (Gross revenue percentile) <= 0.6 THEN 36 WHEN (Gross revenue percentile) <= 0.8 THEN 24 WHEN (Gross revenue percentile) <= 1 THEN 12 ELSE 8 END)
More information on CASE metric can be found here:
https://www.gooddata.com/docs/cloud/create-metrics/maql/conditionals/case/Jakub Sterba
03/27/2025, 9:21 AMSELECT MAX(
SELECT
CASE
WHEN SUM({fact/gross_revenue_percentile}) <= 0.2 THEN 60
WHEN SUM({fact/gross_revenue_percentile}) <= 0.4 THEN 48
WHEN SUM({fact/gross_revenue_percentile}) <= 0.6 THEN 36
WHEN SUM({fact/gross_revenue_percentile}) <= 0.8 THEN 24
WHEN SUM({fact/gross_revenue_percentile}) <= 1 THEN 12
ELSE 8
END
BY {label/product_id}
)
Jakub Sterba
03/27/2025, 9:29 AMGREATEST(8, 60 - 12 * FLOOR(5 * SUM({fact/gross_revenue_percentile})))
Emir
03/27/2025, 11:01 AM