【发布时间】:2018-06-28 20:57:24
【问题描述】:
我正在使用 Postgres 版本 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 )
【问题讨论】:
标签: sql postgresql histogram