Skip to main content

rw_int256

note

rw_int256 的值可能非常大,因此与较小的数据类型相比,需要更多的内存和处理能力。

概述

rw_int256 是一种自定义数据类型,代表一个有符号的 256 位整数,存储空间大小为 32 字节。

它旨在处理大整数值,在金融计算、密码学和数据分析中很有用。

用法

可以使用 rw_int256 类型定义列:

句法
CREATE TABLE table_name (column_name rw_int256);
示例
CREATE TABLE t (v rw_int256);
INSERT INTO t VALUES (1), (100), (10000), (100000000), (10000000000000000), ('100000000000000000000000000000000'), (0), (-1), (-100), (-10000), (-100000000), (-10000000000000000), ('-100000000000000000000000000000000');

转换

也可以将其他数据类型转换为 rw_int256

cast ('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe' AS rw_int256);
-- 或者
'10000000000000000' :: rw_int256;

或将 rw_int256 转换为 double

支持的函数

count

返回非空行数。

句法
count ( [ DISTINCT ] rw_int256 ) -> bigint
示例
SELECT count(v) FROM t;
13

min

返回一组值中的最小值。

句法
min ( rw_int256 ) -> rw_int256
示例
SELECT min(v) FROM t;
-100000000000000000000000000000000

max

返回一组值中的最大值。

句法
max ( rw_int256 ) -> rw_int256
示例
SELECT max(v) FROM t;
100000000000000000000000000000000

sum

返回所有输入值的总和。

句法
sum ( [ DISTINCT ] rw_int256 ) -> rw_int256
示例
SELECT sum(v) FROM t;
0

avg

返回所选值的平均值(算术平均值)。

句法
avg ( [ DISTINCT ] rw_int256 ) -> double
示例
SELECT avg(v) FROM t;
0

hex_to_int256

将十六进制字符串转换为 256 位整数。

句法
hex_to_int256 ( string ) -> rw_int256
示例-1
SELECT hex_to_int256('0xdeadbeef');
3735928559
示例-2
SELECT hex_to_int256('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01');
-255

标准差和方差

返回总体标准差、样本标准差、总体方差和样本方差。

签名
stddev_pop ( rw_int256 ) -> double -- 总体标准差
stddev_samp ( rw_int256 ) -> double -- 样本标准差
var_pop ( rw_int256 ) -> double -- 总体方差
var_samp ( rw_int256 ) -> double -- 样本方差
示例
SELECT stddev_pop(v), stddev_samp(v), var_pop(v), var_samp(v) FROM t;
       stddev_pop       |     stddev_samp      |        var_pop         |        var_samp        
------------------------+----------------------+------------------------+------------------------
3.9223227027636808e+31 | 4.08248290463863e+31 | 1.5384615384615386e+63 | 1.6666666666666666e+63
(1 row)