COUNT(DISTINCT *) desconsidering only one filter

Hi, People! I'm here again! The DOMO noob! 😊

I'm stuck with the beastmode problem:

Imagine that i have 4 cities e each one of it has a N number of reseller points.

In my table, i need to show that N number of reseller points considering all the filters of the page (globals and selections in cards) into one column and in another column, i need to show the [Absolute Number Of Reseller Points] that considers all the filters, except one.

That's what i have till now:

[N number of reseller points considering all the filters] = "Posit. At"

[considers all the filters, except one] = "Posit. Abs"

In the image above, i didn't use the filter, so the both column has the same value, OK.

Now, the problem:

In the image above, i used the filter, so the [Posit. At] has the correct value and the [Posit. Abs] should have 7.130.

That's the script of [Posit. Abs]:

"AVG(COUNT(DISTINCT `RETAILER_CODE`)) OVER (PARTITION BY `CITY_NAME`)"

Any ideas to help this noob? 😏

Tagged:

Best Answers

  • GrantSmith
    GrantSmith Indiana πŸ”΄
    Accepted Answer

    Filters will apply to all rows in your dataset so what you’re wanting to do isn’t possible. You might be able to get around it using a segment and tell it to not apply those filters you wish to ignore.

  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🟀
    Accepted Answer

    you cannot do a count distinct across all your cities even with a window function.

    the window function would calculate count distinct for EACH city, and then take the average, min or max as you've tried already.

    unfortunately (as i'm sure you've figured out) if i have the same retailer code in multiple cities, it would double count.

    what you would have to do is restructure your data. easiest thing to do would be to UNION the entire dataset onto itself such that the second grouping contains 'All Cities' in the City column.

    then you can construct your metric using beast modes

    count (distinct case when city <> 'all cities' then `retailer code`)
    /
    max(count (distinct case when city = 'all cities' then `retailer code`)) over ()
    
    
    
    
    
    


Answers

  • Ah... One little problem!

    Using ETL is not possible because the base is only a Snowflake view.

    The data is not in DOMO DW.

    πŸ˜₯

  • Tanks, @GrantSmith and @jaeW_at_Onyx !

    Our team is stuck in some fronts just because we cannot use MagicETL and burocracy to change the way we receive the data (other enterprise).

    I tried some ways, but without part of DOMO features, (ETL, Explorer, etc) some visualizations are simply not possible.


    Tks again for the quick response!