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”.
You can’t catch up on 20 years of SQL evolution in one day. Subscribe the newsletter via E-Mail, Twitter or RSS to gradually catch up and to keep modern-sql.com on your radar.
The essence of SQL tuning in 200 pages
Buy now!
(paperback and/or PDF)
Paperback also available at Amazon.com.
Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »