Exploring distribution 形成bin的方法

1.Truncate

此函数用于返回X的截断到小数位D号的值。 如果D为0,则小数点被除去。如果D是负的,那么D的值的整数部分值的数量被截断。

在这里插入图片描述
-3表示有三位数要用0代替

2.PostgreSQL的generate_series函数应用

一、简介

PostgreSQL 中有一个很有用处的内置函数generate_series,可以按不同的规则产生一系列的填充数据。

二、语法
generate_series(start, stop, step)
生成一个数值序列,从start 到 stop,步进为step
在这里插入图片描述
例子

-- 设置bins的上下限,用generate_series设置start,end和步长
WITH bins AS (
      SELECT generate_series(2200, 3050, 50) AS lower,
             generate_series(2250, 3100, 50) AS upper),
     -- subset stackoverflow to just tag dropbox
     dropbox AS (
      SELECT question_count 
        FROM stackoverflow
       WHERE tag='dropbox') 
-- select lower, upper, and count(*)来观察distribution
SELECT lower, upper, count(*) 
  -- from bins created above
  FROM bins
       -- join to dropbox and keep all rows from bins
       LEFT JOIN dropbox
       -- 重点来了,JOIN后可以接不等式!Compare question_count to lower and upper
         ON question_count >= lower 
        AND question_count < upper
 -- Group by lower and upper to count values in each bin
 GROUP BY lower, upper
 -- Order by lower to put bins in order
 ORDER BY lower;

猜你喜欢

转载自blog.csdn.net/Cecilia_W422/article/details/88627928