Я использую PSQL версии 9.6.9 и пытаюсь использовать width_bucket () для генерации гистограммы с сегментами, состоящими из одинаковой ширины. Однако используемый мной запрос не возвращает сегменты одинаковой ширины.
Как видно из приведенного ниже примера, значения в сегменте имеют различную ширину. например ковш 1 имеет минимум 7 и максимум 18 - ширина 11. ковш 3 имеет минимум 52 и максимум 55 - ширина 3.
Как я могу настроить свой запрос, чтобы каждая корзина имела одинаковую ширину?
Вот как выглядят данные:
value
-------
7
7
15
17
18
22
23
25
29
42
52
52
55
60
74
85
90
90
92
95
(20 строк)
Вот запрос и полученная гистограмма:
WITH min_max AS (
SELECT
min(value) AS min_val,
max(value) AS max_val
FROM table
)
SELECT
min(value),
max(value),
count(*),
width_bucket(value, min_val, max_val, 5) AS bucket
FROM table, min_max
GROUP BY bucket
ORDER BY bucket;
min | max | count | bucket
-----+-----+-------+--------
7 | 23 | 7 | 1
25 | 42 | 3 | 2
52 | 55 | 3 | 3
60 | 74 | 2 | 4
85 | 92 | 4 | 5
95 | 95 | 1 | 6
( 6 rows )