HighGo Database中的seg模块

目录

文档用途

详细信息https://support.highgo.com/#/index/docContent/630fe57504448136

文档用途

seg模块提供了一种数据类型seg,它用于表示线段或者浮点区间。seg可以表示区间端点中的不确定性,这使得它在表示实验测量的数据时特别有用。

详细信息

进行几何学测量时,由于不确定性和随机性,测量值可能是表示特定条件的区间,例如一个温度范围区间。

举个例子,进行几何学测量时,我们把使用仪器测出的值放到数据库中。当以后再从数据库中取出这个值时,得到的结果可能会出现差异。 

首先创建扩展:

highgo=# create extension seg;

CREATE EXTENSION

假设当时存入数据库中几个精确的高度值,再次查询时,得到的值的精确度可能会不同。

highgo=# create table measurement(height float8);

CREATE TABLE

highgo=# insert into measurement values(4.30);

INSERT 0 1

highgo=# insert into measurement values(4.56);

INSERT 0 1

highgo=# select * from measurement;

 height 

--------

    4.3

   4.56

(2 rows)

值得注意的是,在测量学领域里,4.30和4.3可能表示的是截然不同的意义。4.30可能被包含于4.3这个区间之内,所以通常我们不希望这些不同的数据项看起来是相同的。 

此时,如果使用seg模块提供的seg数据类型,就可以记录带有任意可变精度的区间。这是非常有用的,每个数据元素会记录它自己的精度。 

举例如下:

用seg数据类型表示带精度的pH值区间:

highgo=# select '3.25 .. 3.50' :: seg as "pH";

      pH      

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

 3.25 .. 3.50

(1 row)

在seg这种数据类型中,一个区间的外部表达是一个或两个浮点数,中间使用 “..” 或 “...” 分隔。也可以使用一个中心点加上(或减去)一个偏差值的方式,例如‘5(+-)2’。 

作为seg的一种完整性检查,如果区间的下界比上界大,会导致报错。例如 “10 ... 2” 

highgo=# select '10 .. 2' :: seg as "rank";

ERROR:  22023: swapped boundaries: 10 is greater than 2

LINE 1: select '10 .. 2' :: seg as "rank";

               ^ 

更多详细信息请登录【瀚高技术支持平台】查看

猜你喜欢

转载自blog.csdn.net/pg_hgdb/article/details/88785698
SEG
今日推荐