FIltering by percentile in Beast Mode/ETL
I recently had the need to filter a list of pages by pageviews. I only want pages with pageviews in the 80% percentile or higher.
This had to be done on a weekly basis. And I don't want to use a fixed-number cutoff (e.g. filter when pageview is >1,000, which is a fixed number), since pageviews > 1,000 might be considered good this week, but average the next (consider Black Friday week for example).
Appreciate any help or advice on this. I am agnostic to the calculation being done in Beast Mode or within ETL.
Marv
Comments
-
Luckily I had to do the same thing a couple weeks ago. Here's the query I used in a SQL transform to generate a 'Percentile' column on the dataset.
You should be able to edit this to fit your needs:
SELECT
a.*,
ROUND(100.0 * (SELECT COUNT(*) FROM inputDatset AS b WHERE b.`Values` <= a.`Values` ) / total.cnt, 1 )
AS percentile FROM inputDatset AS a
CROSS JOIN (
SELECT COUNT(*) AS cnt
FROM inputDatset) AS total
ORDER BY percentile DESCYou'll just need to replace the `Values` field with your pageviews field and then the inputDataset with whatever your initial table is.
Once you have your new output, you can filter on your percentile column >= 80.
Let me know if you have any other questions.
Sincerely,
ValiantSpur
**Please mark "Accept as Solution" if this post solves your problem
**Say "Thanks" by clicking the "heart" in the post that helped you.0
Categories
- 10.5K All Categories
- 6 Connect
- 916 Connectors
- 250 Workbench
- 463 Transform
- 1.7K Magic ETL
- 69 SQL DataFlows
- 476 Datasets
- 189 Visualize
- 252 Beast Mode
- 2.1K Charting
- 11 Variables
- 17 Automate
- 354 APIs & Domo Developer
- 89 Apps
- 3 Workflows
- 20 Predict
- 5 Jupyter Workspaces
- 15 R & Python Tiles
- 246 Distribute
- 62 Domo Everywhere
- 243 Scheduled Reports
- 21 Manage
- 42 Governance & Security
- 172 Product Ideas
- 1.2K Ideas Exchange
- 11 Community Forums
- 27 Getting Started
- 14 Community Member Introductions
- 55 Community News
- 4.5K Archive