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)