<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # F.32\. seg 這個模塊為定義線段和浮點類型的時間間隔提供了一種數據類型 `seg`, 這種數據類型由于可以代表不確定終點的區間,所以在做實驗測量的時候特別有用。 ## F.32.1\. &lt;--!Rationale--&gt;原理 幾何學測量要比測量連續的點復雜的多,測量出的結果通常是一些模糊限制的連續值 組成的區間值。這種區間的產生可能是由于測量出結果的不確定性,隨機性,也可能 要測量的值本身就是以區間的形式作為條件的,如測量蛋白質穩定性的溫度范圍。 一般來說,用這個數據類型存儲區間值比用雙引號更方便。實際上,在大部分的應用 中這么使用也更有效率。 進一步說,傳統數值類型存儲數據可能對一些模糊限制的值產生偏差,你獲取的會 值是6.50并且存入數據庫,當你讀出的時候會是什么,看下面例子: ``` test=> select 6.50 :: float8 as "pH"; pH --- 6.5 (1 row) ``` 在精確測量中,6.50和6.5代表的意思是不一樣的,而且有時差異會很大。測量者 記下或者公布6.50代表了一個更大甚至更模糊的區間值,6.5只是代表了6.50的一 個中心點。像這種不同數據的同化表達是我們絕對不想看到的。 本章的特殊數據類型可以用來記錄任意可變精度的間隔值,而且記錄的每個數據都可以 使用自己的精度。 查看結果: ``` test=> select '6.25 .. 6.50'::seg as "pH"; pH ------------ 6.25 .. 6.50 (1 row) ``` ## F.32.2\. 語法 使用一個或者二個精度數代表一個區間,連接格式(`..`或 `...`)。另外也可以用值和偏移符號表示(`&lt;`, `&gt;` 或 `~`)。(正確的符號會被所有內建 的操作忽略。)表[Table F-24](#calibre_link-2301)和[Table F-25](#calibre_link-2302) 給出了區間表示的方法和一些例子。 在表[Table F-24](#calibre_link-2301)中 `_x_`, `_y_`和 `_delta_`代表雙精度數。可以在`_x_`, `_y_`之前 添加正確的操作符。 **Table F-24\. `seg` External Representations** | `_x_` | 單個值(間隔為0) | |:--- |:--- | | `_x_` .. `_y_` | 區間`_x_` 到 `_y_` | | `_x_` (+-) `_delta_` | 區間 `_x_` - `_delta_` to `_x_` + `_delta_` | | `_x_` .. | `_x_`開區間無下限 | | `..` `_x_` | `_x_`開區間無上限 | **Table F-25\. Examples of Valid `seg` Input** | `5.0` | 零長度的區間(一個點) | |:--- |:--- | | `~5.0` | `~`作為一個標記存在,5.0的點和記錄 | | `&lt;5.0` | `&lt;`作為一保留個標記存在,比點5.0小的 | | `&gt;5.0` | `&gt;`作為一個保留標記存在,比點5.0大的 | | `5(+-)0.3` | 同區間 `4.7 .. 5.3`, `(+-)`不是保留標記 | | `50 ..` | 區間大于50 | | `.. 0` | 區間小于0 | | `1.5e-2 .. 2E-2` | 表示區間`0.015 .. 0.02` | | `1 ... 2` | `1...2`,`1 .. 2`,`1..2` 表達區間相同(空格會被忽略) | 在數據源中`...`被廣泛使用,他的作用和另外一種拼寫 `..` 相同。但這可能產生歧義如`0...23`是表示`23`還是`0.23`. 所以在 `seg`數據類型中所有十進制小數的小數點前都需要有一個數字。 `seg`不允許表示的區間由大到小表示,如 `5 .. 2`。 ## F.32.3\. 精度 `seg`存儲的值使用32-位的浮點數。精度不超過7位。 精度小于7位,保留本身的精度。換句話說如果你的返回值是0.00,那么這是數值本身帶的精度 而不是格式化處理的。數值前的0不作為精度:值0.0067的精度被視為2。 ## F.32.4\. 使用 `seg`模塊包含可以在 GiST索引中操作 `seg`數據類型值的類,該類支持表 [Table F-26](#calibre_link-2303)中的操作。 **Table F-26\. Seg GiST Operators** | 操作 | 描述 | | --- | --- | | `[a, b] &lt;&lt; [c, d]` | [a,b]的范圍完全在[c,d]的左側。換句話說,b &lt; c那么 [a,b] &lt;&lt; [c, d] 為真,否則為假。 | | `[a, b] &gt;&gt; [c, d]` | [a,b]的范圍全部在[c,d]的右側。換句話說,a &gt; d那么 [a,b] &gt;&gt; [c, d] 為真,否則為假。 | | `[a, b] &&lt; [c, d]` | 左包含,或者解讀為取值范圍不超過右邊,b &lt;= d時為真。 | | `[a, b] &&gt; [c, d]` | 右包含,或者解讀為取值范圍不超過左邊,a &gt;= c時為真。 | | `[a, b] = [c, d]` | [a, b]和[c, d]相同,當a=c并且b=d時為真。 | | `[a, b] && [c, d]` | [a, b]和[c, d]重疊部分 | | `[a, b] @&gt; [c, d]` | [a, b]包含[c, d],意味著 a &lt;= c并且 b &gt;= d。 | | `[a, b] &lt;@ [c, d]` | [a, b]被[c, d]包含,意味著 a &gt;= c and b &lt;= d。 | PostgresSQL 8.2之前的版本中,`@&gt;` 和`&lt;@`分別用`@`和`~`表示。 但那種表示方式會在將來完全被替代,所以不贊成使用。注意舊的名稱會隨著代表幾何的數據類型轉換為慣例的格式。 提供標準的B-tree操作,例如 | 操作 | 描述 | | --- | --- | | `[a, b] &lt; [c, d]` | 小于 | | `[a, b] &gt; [c, d]` | 大于 | 這些操作除了做排序以外沒有別的用處,首先是(a)和(c)比較大小,如果 相等在比較(b)和(d)。如果使用這種類型排序,得到的的結果在大多數情 況下是合理的。 ## F.32.5\. 注意 使用例子,參看回歸測試 `sql/seg.sql`。 使用 `(+-)`機制轉換數字的時候可能得到不確定的精度。舉個例子他可能 為較低的邊界值增加額外的精度: ``` postgres=> select '10(+-)1'::seg as seg; seg --------- 9.0 .. 11 -- 應該為: 9 .. 11 ``` R-tree索引的性能很大程度上依賴初始輸入值的排序。在輸入表的`seg`類型列 上排序可能是非常有效果的;參考腳本 `sort-segments.pl`。 ## F.32.6\. 感謝 原作者:Gene Selkov, Jr. `&lt;[selkovjr@mcs.anl.gov](mailto:selkovjr@mcs.anl.gov)&gt;`,數學與計算機科學部,阿貢國家實驗室。 感謝Joe Hellerstein教授 ([http://db.cs.berkeley.edu/jmh/](http://db.cs.berkeley.edu/jmh/))闡明的思想 ([http://gist.cs.berkeley.edu/](http://gist.cs.berkeley.edu/))。感謝所有 Postgres開發者,使我可以站在巨人的肩膀上。 感謝阿貢實驗室和美國能源部多年的忠實支持我的數據庫的研究。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看