Sql 宽度\u铲斗不返回空铲斗

Sql 宽度\u铲斗不返回空铲斗,sql,postgresql,Sql,Postgresql,在postgres 9.5.3中,width\u bucket()。有没有办法让这些空桶出现 CREATE TEMP TABLE metrics (val INT); INSERT INTO metrics (val) VALUES(1), (2), (3), (8), (10); SELECT width_bucket(val, 1, 10, 9) FROM metrics; 返回: width_bucket ------------ 1 2

在postgres 9.5.3中,
width\u bucket()。有没有办法让这些空桶出现

CREATE TEMP TABLE metrics (val INT);
INSERT INTO metrics (val) VALUES(1), (2), (3), (8), (10);
SELECT width_bucket(val, 1, 10, 9) FROM metrics;
返回:

width_bucket
------------
           1
           2
           3
           8
          10
width\u bucket()。它返回分配给每个值的bucket。如果未向某个存储桶分配任何值,则不会返回该存储桶值

这不是缺少水桶。桶中根本没有数据

如果要计算存储桶的大小(并包括所有大小),请使用
generate_series()
生成存储桶:


感谢@gordon,我不得不对其进行一些修改,以处理不在1-10范围内的数字,但想法是一样的:)
SELECT g.n, COUNT(m.val) 
FROM generate_series(1, 10) g(n) LEFT JOIN
     metrics m 
     ON width_bucket(val, 1, 10, 9) = g.n
GROUP BY g.n
ORDER BY g.n;