• 1
  • 2
  • 3
  • 4
  • 5
mssql數據庫問題 首 頁  ?  幫助中心  »  數據庫  »  mssql數據庫問題
PostgreSQL 9.5新特性
發布日期:2016-5-2 21:5:22

  PostgreSQL 9.5 新增了一個函數,這個函數是width_bucket ,可以用來計算一個值在一個bucket范圍內的位置信息,若這個值超出了給定的范圍,返回0或總bucket+1。除了用數字來表示,bucket還可以直接用數組來表示。如圖1所示


  圖1

  例如:

  0.0, 5.0是邊界,其中包含0.0,但不包含5.0, 最后一個參數表示一共分為5個bucket。

  超出邊界,參考代碼如下所示:

  postgres=# select width_bucket(-1, 0.0, 5.0, 5);

  width_bucket

  --------------

  0

  (1 row)

  postgres=# select width_bucket(5.0, 0.0, 5.0, 5);

  width_bucket

  --------------

  6

  (1 row)

  postgres=# select width_bucket(-0.0000001, 0.0, 5.0, 5);

  width_bucket

  --------------

  0

  (1 row)

  postgres=# select width_bucket(5.1, 0.0, 5.0, 5);

  width_bucket

  --------------

  6

  (1 row)

  在邊界內:

  postgres=# select width_bucket(0, 0.0, 5.0, 5);

  width_bucket

  --------------

  1

  (1 row)

  postgres=# select width_bucket(1, 0.0, 5.0, 5);

  width_bucket

  --------------

  2

  (1 row)

  postgres=# select width_bucket(1.9, 0.0, 5.0, 5);

  width_bucket

  --------------

  2

  (1 row)

  postgres=# select width_bucket(1.9999999, 0.0, 5.0, 5);

  width_bucket

  --------------

  2

  (1 row)

  postgres=# select width_bucket(2, 0.0, 5.0, 5);

  width_bucket

  --------------

  3

  (1 row)

  postgres=# select width_bucket(4.9999, 0.0, 5.0, 5);

  width_bucket

  --------------

  5

  (1 row)

  直接使用數組代表邊界:

  請注意參數類型必須一致。

  postgres=# select width_bucket(now(), array['yesterday', 'today', 'tomorrow']::timestamptz[]);

  width_bucket

  --------------

  2

  (1 row)

  postgres=# select width_bucket(now(), array['yesterday', 'today', 'tomorrow']::timestamp[]);

  ERROR: function width_bucket(timestamp with time zone, timestamp without time zone[]) does not exist

  LINE 1: select width_bucket(now(), array['yesterday', 'today', 'tomo...

  ^

  HINT: No function matches the given name and argument types. You might need to add explicit type casts.

  postgres=# select width_bucket(1,'{0,1,100,200,300}'::int[]);

  width_bucket

  --------------

  2

  (1 row)

  邊界表示如下所示,因此1落在第二個bucket。

  [0,1)

  [1,100)

  [100,200)

  [200,300)

后面會更新一些關于mssql的相關文章,關心mssql的童鞋敬請期待。

什么行业的讲师最赚钱 2019宝宝浙江游戏下载 博客网站 全民福州麻将手机版下载 茅台股票发行价 e球彩中三场奖金多少 贵阳捉鸡麻将取舍技 股票竞价规则 930精准十码 相关词 江西多乐彩的投注技巧