Calculate rank so that the smaller number is higher rank
I need to calculate the rank on a metric where the lower value is higher in rank, and the higher values are lower in rank. This is how I've been calculating standard rank (where higher values are high in rank)
SELECT `Metric`
,`TimeFrame`
,`VALUE`
,`Name`
,`Grouping`
,`ProcessorName`
,CASE
WHEN @priorMetric = `MetricID` AND `VALUE` = @priorValue THEN @rank := @rank
WHEN @priorMetric = `MetricID` THEN @rank := @rank + 1
else @rank := 1
END AS Rank
,@priorMetric := `MetricID` as MetricID
,@priorValue := `VALUE`
FROM sort
JOIN(SELECT @rank := 0, @priorMetric:= '', @priorValue := 0) r
Tagged:
0
Comments
-
How is your
sort
table defined? Can you just make sure you're sorting the values in ASC instead of DESC?**Was this post helpful? Click Agree or Like below**
**Did this solve your problem? Accept it as a solution!**0
Categories
- 10.5K All Categories
- 8 Connect
- 918 Connectors
- 250 Workbench
- 472 Transform
- 1.7K Magic ETL
- 69 SQL DataFlows
- 477 Datasets
- 202 Visualize
- 255 Beast Mode
- 2.1K Charting
- 12 Variables
- 17 Automate
- 354 APIs & Domo Developer
- 89 Apps
- 3 Workflows
- 20 Predict
- 5 Jupyter Workspaces
- 15 R & Python Tiles
- 247 Distribute
- 63 Domo Everywhere
- 243 Scheduled Reports
- 21 Manage
- 42 Governance & Security
- 179 Product Ideas
- 1.2K Ideas Exchange
- 12 Community Forums
- 27 Getting Started
- 14 Community Member Introductions
- 55 Community News
- 4.5K Archive