Most frequent results
FrequencyUnroll every attempt value (each result has 1 ~ 5 attempts: 3x3 ao5 = 5, FMC mean = 3, single events = 1) across all WCA history, then count which exact centisecond values show up most often.
The result is oddly fun: round-number times pile up (e.g. 10.00 and 12.00 on 3x3), which is a side effect of how timer-stoppers eye the readout; FMC has dense integer values by construction; BLD is dominated by DNF, but > 0 filtering means the board shows only successes.
By the numbers
`> 0`
Successful only
DNF (-1), DNS (-2), unattempted (0) all skipped
21 项目
Per-event buckets
Different events have wildly different distributions; not pooled
top 10
Rows per event
Per event: the 10 most-frequent exact values
~M 级
Total attempts
Tens of millions of attempts across WCA history
Data source
SQL only SELECTs event_id and a comma-separated attempts string (built by ATTEMPTS_SUBQUERY over the result_attempts table, joining 1 ~ 5 attempts into one cell). Splitting, filtering, and counting all happen in TS. Excludes event_id = '333mbo' (legacy multi-BLD, superseded by 333mbf).
sql
SELECT
event_id,
${ATTEMPTS_SUBQUERY} AS attempts -- 1~5 attempts joined as 'v1,v2,v3,v4,v5'
FROM results result
WHERE event_id != '333mbo';
-- TS side:
-- for each row: attempts.split(',').map(Number)
-- for each value v > 0: counts.set(v, counts.get(v) + 1)
-- sort by count desc, top 10 per eventAlgorithm / pipeline
1
Concatenate attempts
ATTEMPTS_SUBQUERY does a per-result_id GROUP_CONCAT(value ORDER BY attempt_number) over result_attempts, yielding strings like '1234,1100,1450,1380,1290'. (The WCA schema does not have value1..value5 columns — each attempt is its own row in result_attempts.)2
Bucket by event + split attempts
EVENTS_ENTRIES.map builds one section per event. row.attempts.split(',').map(Number) extracts the 1 ~ 5 attempts; the v > 0 filter drops DNF (-1), DNS (-2), and unattempted (0).3
`Map<number, number>` count
valueCounts.set(v, (valueCounts.get(v) ?? 0) + 1) — increment per occurrence. v is the raw centisecond / move-count integer, so 10.00 (1000), 10.01 (1001), 10.02 (1002) are three distinct keys.4
Sort, top 10, format
[...valueCounts.entries()].sort((a, b) => b[1] - a[1]).slice(0, 10), then SolveTime(eventId, 'single', v).clockFormat() turns the integer into a display string (10.00, 33, etc.).Caveats & edges
333mbo(multi-BLD old style) is excluded outright — superseded by333mbfin 2009, with too few data points and a different encoding.- DNF / DNS / unattempted are not counted, so even though BLD events have abundant DNFs in raw data, the board shows only successful attempts.
- FMC attempts are integer move counts, producing high-frequency exact values like
28,29,30. Timed events are centiseconds — over-representation of.00and.50reflects human "stop-the-timer" perception bias. - All 5 attempts of a result are counted — not only the
best, not only the 3 that survive ao5 trimming.