The width_bucket()
function distributes rows into n
groups where each represents a equal-width value range between a specified minimum and maximum.
SELECT width_bucket(x, 0, 1, 10) -- (input, min, max, n)
FROM …
The example returns an integer between from 0 to 11 by splitting the range 0 to 1 (min to max) into 10 equal parts (n). If x
falls into the range 0 to 1 it returns the group into which x
belongs. 0 or 11 are returned if x
is outside the range (below minimum or above maximum).
Similar functions: ntile()
The width_bucket()
window function is defined in ISO/IEC 9075:2016-2 as part of optional feature T612, “Advanced OLAP operations”.
The essence of SQL tuning in 200 pages
Buy on Amazon
(paperback only)
Paperback and PDF also available at Markus’ store.
Markus offers SQL training and consulting for developers working at companies of any size.
Learn more »