이 모듈은 데이터 유형을 구현합니다스포츠 토토 베트맨
라인 세그먼트 또는 부동 소수점 간격을 나타냅니다.스포츠 토토 베트맨
간격 종료 점에서 불확실성을 나타낼 수 있으므로 실험실 측정을 나타내는 데 특히 유용합니다.
측정의 기하학은 일반적으로 숫자 연속체의 지점보다 더 복잡합니다. 측정은 일반적으로 다소 퍼지 한 한계를 가진 해당 연속체의 세그먼트입니다.
상식을 사용하면 숫자 쌍이 아닌 간격으로 데이터를 간격으로 저장하는 것이 더 편리합니다. 실제로, 그것은 대부분의 응용 프로그램에서 더 효율적입니다.
상식의 선을 따라 한계의 퍼지 성은 기존 숫자 데이터 유형의 사용이 특정 정보 손실로 이어진다는 것을 시사합니다. 이것을 고려하십시오 : 계측기는 6.50을 읽고이 판독 값을 데이터베이스에 입력합니다.
test => select 6.50 :: float8 As "ph";
측정 세계에서 6.50은 6.5와 다릅니다. 때로는 비판적으로 다를 수 있습니다.
결론? 임의로 가변적 인 정밀도로 간격의 한계를 기록 할 수있는 특수한 데이터 유형을 갖는 것이 좋습니다.
이것을 확인하십시오 :
test => 선택 '6.25 .. 6.50':: 스포츠 토토 베트맨 as "ph";
간격의 외부 표현은 범위 연산자가 연결하는 하나 또는 2 개의 부동 소수점 번호를 사용하여 형성됩니다 (..
또는...
). 대안 적으로, 그것은 센터 포인트 플러스 또는 마이너스 편차로 지정할 수 있습니다.<
, 또는
~
)도 저장할 수 있습니다. (그러나 모든 내장 운영자가 확실한 지표를 무시합니다.)테이블 F.26허용 된 표현에 대한 개요를 제공합니다.테이블 F.27몇 가지 예를 보여줍니다.
in테이블 F.26, x
, y
및델타
부동 소수점 번호 표시.x
andy
하지만델타
, 확실성 지표가 앞에있을 수 있습니다.
표 F.26. 스포츠 토토 베트맨
외부 표현
|
단일 값 (제로 길이 간격) |
|
간격x toy |
|
간격x - 델타 tox + 델타 |
|
하한이있는 개방 간격x |
.. |
상한이있는 개방 간격x |
표 F.27. 유효한 예스포츠 토토 베트맨
입력
5.0 |
제로 길이 세그먼트를 만듭니다. |
~5.0 |
제로 길이 세그먼트 및 레코드를 만듭니다~ 데이터에서.~ 에 의해 무시됩니다스포츠 토토 베트맨 운영이지만 의견으로 보존됩니다. |
<5.0 |
5.0에서 점수를 만듭니다.< 무시되지만 의견으로 보존됩니다. |
> 5.0 |
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
. 이것은 모든 숫자의 소수점 이전에 적어도 하나의 숫자를 요구하여 해결됩니다.스포츠 토토 베트맨
입력.
정신 점검으로스포츠 토토 베트맨
예를 들어 하한이 상단보다 큰 간격을 거부합니다.5 .. 2
.
스포츠 토토 베트맨
값은 내부적으로 32 비트 플로팅 포인트 번호 쌍으로 저장됩니다. 이것은 7 개 이상의 중요한 숫자가있는 숫자가 잘릴 것임을 의미합니다.
7 이하의 숫자가 7 이하의 숫자는 원래 정밀도를 유지합니다. 즉, 쿼리가 0.00을 반환하면 후행 제로가 서식의 아티팩트가 아닌지 확인합니다. 원래 데이터의 정밀도를 반영합니다.
the스포츠 토토 베트맨
모듈에 대한 GIST 인덱스 연산자 클래스가 포함되어 있습니다스포츠 토토 베트맨
값. GIST 운영자 클래스에서 지원하는 연산자가에 표시됩니다.테이블 F.28.
표 F.28. 스포츠 토토 베트맨 Gist 운영자
운영자 | 설명 |
---|---|
[a, b] << [c, d] |
[a, b]는 전적으로 [c, d]의 왼쪽에 있습니다. 즉, [a, b] << [c, d]는 b |
[a, b] >> [c, d] |
[a, b]는 전적으로 [c, d]의 오른쪽에 있습니다. 즉, [a, b] >> [c, d]는 a> d이고 false는 그렇지 않으면 참입니다. |
[a, b] & <[c, d] |
겹치거나 남은 - 이것은 더 잘 읽을 수 있습니다.“오른쪽으로 확장되지 않습니다”. b <= d.가 사실입니다. |
[a, b] &> [c, d] |
겹치거나 옳습니다 - 이것은 더 잘 읽을 수 있습니다“왼쪽으로 확장되지 않습니다”. a> = c.가 사실입니다. |
[a, b] = [c, d] |
동일 - 세그먼트 [a, b] 및 [c, d]는 동일합니다. 즉, a = c 및 b = d. |
[a, b] && [c, d] |
세그먼트 [A, B] 및 [C, D] 중첩. |
[a, b] @[c, d] |
세그먼트 [a, b]는 세그먼트 [c, d], 즉 a <= c 및 b> = d.를 포함합니다. |
[a, b] <@ [c, d] |
세그먼트 [a, b]는 [c, d], 즉 a> = c 및 b <= d.에 포함되어 있습니다. |
(Postgresql 8.2 이전, 격리 연산자@>
and<@
각각.@
and~
. 이 이름은 여전히 사용 가능하지만 감가 상각되며 결국 은퇴 할 것입니다.
표준 B- 트리 연산자도 제공됩니다 (예 :
운영자 | 설명 |
---|---|
[a, b] <[c, d] |
|
[a, b]> [c, d] |
보다 큰 |
이 연산자들은 실제적인 목적으로는 의미가 없지만 정렬합니다. 이 연산자들은 먼저 (a)와 (c)를 비교하고, 이것이 같으면 (b)와 (d)를 비교하십시오.
사용의 예는 회귀 테스트를 참조하십시오SQL/스포츠 토토 베트맨.SQL
.
변환하는 메커니즘(+-)
정기적 인 범위는 경계에 대한 유의 한 숫자 수를 결정하는 데 완전히 정확하지 않습니다. 예를 들어, 결과 간격에 10의 전력이 포함 된 경우 하한에 여분의 숫자를 추가합니다.
postgres => select '10 (+-) 1 ':: seg as seg;
R- 트리 지수의 성능은 입력 값의 초기 순서에 크게 의존 할 수 있습니다. 입력 테이블을 정렬하는 것이 매우 유용 할 수 있습니다스포츠 토토 베트맨
열; 스크립트보기스포츠 토토 베트맨
예를 들어.
원래 저자 : Gene Selkov, Jr.<selkovjr@mcs.anl.gov
, Argonne National Laboratory의 수학 및 컴퓨터 과학 부서.
주로 Joe Hellerstein 교수에게 감사드립니다 (https://dsf.berkeley.edu/jmh/) 요점의 요점을 설명하기 위해 (http://gist.cs.berkeley.edu/). 또한 현재와 과거의 모든 Postgres 개발자에게 내 자신의 세계를 만들고 방해받지 않은 살 수있게 해주셔서 감사합니다.