Replace CAD *Ranks table calculation with SQL window function #10491
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Kinda-followup to #10412
While testing the queries over in that other PR, I noticed how the
RanksSingle
andRanksAverage
computations were kinda slow, and after staring at the code for a while I realized that it's really just computing numeric rankings per (world, continent, country) each.Window functions in MySQL have been around for long enough, and MySQL 8 is pretty much standard everywhere now, so I believe it's fair to use this. See https://dev.mysql.com/doc/refman/8.4/en/window-function-descriptions.html#function_rank and https://dev.mysql.com/doc/refman/8.4/en/window-functions-usage.html for details.
We still need to discuss with WRT whether these queries are actually equivalent, so I'm setting this to Draft for the time being.