测试环境:
- Vertica:Vertica Analytic Database v11.1.1-22
- WutongDB:V5.4.10.0
1. within group order by
功能说明:
within group order by
子句用于聚合函数中,用于指定按特定顺序聚合数据。常用于计算百分位数、分位数等操作。测试语句:
select age, max(sts_month) as max_value, min(sts_month) within group ( order by age desc ) as min_desc_value from bdcis.tb_cis_user_induser_day group by age limit 10;
Vertica 输出结果:
vertica 可以直接使用该函数,给一个具体的参数(vertica)可以得到结果,而在测试语句中的图片显示,参数为 verchar 类型的字段就报错,
WutongDB 输出结果:
在梧桐数据库中出错,如下所示:
syntax error at or near "within"
2. approximate_count_distinct
功能说明:
approximate_count_distinct(expression)
函数用于估算表达式中不同值的数量,性能优于精确计数,在处理大数据集时特别有用。测试语句:
select approximate_count_distinct(serv_number, 5) as five from bdcis.tb_cis_user_induser_day limit 10;
Vertica 输出结果:
57771503
WutongDB 输出结果:
argmin() 函数不存在,如下图所示:
function approximate_count_distinct(character varying, integer) does not exist
3. approximate_median
功能说明:
approximate_median(expression)
函数用于估算数据集中值的中位数。相比精确中位数计算,它的计算速度更快,适用于大数据集。测试语句:
select approximate_median(sts_month) from bdcis.tb_cis_user_induser_day limit 10;
Vertica 输出结果:
输出结果如下所示:
202101
WutongDB 输出结果:
在梧桐中,函数不存在,如下所示:
function approximate_median(bigint) does not exist
4. approximate_percentile
功能说明:
approximate_percentile(expression using parameters percentiles)
函数用于估算给定百分比的百分位数。它比精确百分位数计算快,适用于大数据集。测试语句:
select user_id, approximate_percentile(sts_month using parameters percentiles = '0.5') as median from bdcis.tb_cis_user_induser_day group by user_id limit 10;
Vertica 输出结果:
输出结果如下图所示:
WutongDB 输出结果:
在梧桐中,执行错误,如下所示:
syntax error at or near "using"
5. approximate_quantiles
功能说明:
approximate_quantiles(expression using parameters nquantiles)
函数用于估算指定数量分位数的值,用于快速估算数据分布。测试语句:
select approximate_quantiles(sts_month using parameters nquantiles=6) over() from bdcis.tb_cis_user_induser_day limit 10;
Vertica 输出结果:
在 vertica 中可以执行,如下图所示:
WutongDB 输出结果:
在梧桐中,执行错误,如下所示:
syntax error at or near "using"
6. argmax_agg
功能说明:
argmax_agg(expression)
函数用于返回聚合中最大值对应的另一个表达式的值。测试语句:
select sts_month, argmax_agg(age) as max_agg from bdcis.tb_cis_user_induser_day group by sts_month limit 10;
Vertica 输出结果:
在 vertica 中函数不存在,出错,如下图所示:
Function argmax_agg(int) does not exist, or permission is denied for argmax_agg(int)
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function argmax_agg(bigint) does not exist
7. argmin_agg
功能说明:
argmin_agg(expression)
函数用于返回聚合中最小值对应的另一个表达式的值。测试语句:
select argmin_agg(age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中函数不存在,出错,如下图所示:
Function argmin_agg(int) does not exist, or permission is denied for argmax_agg(int)
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
pq: function argmin_agg(bigint) does not exist
8. avg
功能说明:
avg(expression)
函数用于计算表达式的平均值。测试语句:
select user_id, avg(arpu) refer_3arpu from gs_test.test_function_avg where total = 2 group by user_id;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
13.45
WutongDB 输出结果:
在梧桐中输出结果如下所示(小数位数不同):
13.4500000000000000
9. bool_and
功能说明:
bool_and(expression)
函数用于检查所有表达式是否都为真,返回布尔值。测试语句:
create table gs_test.ceshi_bool ( model varchar(20), colors varchar(20) ); insert into gs_test.ceshi_bool select 'beginner','green' union all select 'intermediate','blue' union all select 'intermediate','blue' union all select 'advanced','green' union all select 'advanced','blue' union all select 'professional','blue' union all select 'professional','green' union all select 'beginner','green' ; select model, bool_and(colors='blue') as two_blue from gs_test.ceshi_bool group by model order by model,two_blue;
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
梧桐输出结果如下图所示:
10. bool_or
功能说明:
bool_or(expression)
函数用于检查是否至少有一个表达式为真,返回布尔值。测试语句:
select model, bool_or(colors = 'blue') as two_blue from gs_test.ceshi_bool group by model order by model, two_blue;
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
梧桐输出结果如下图所示:
11. bool_xor
功能说明:
bool_xor(expression)
函数用于检查表达式中真值的数量是否为奇数,返回布尔值。测试语句:
select model, bool_xor(colors = 'blue') as two_blue from gs_test.ceshi_bool group by model;
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function bool_xor(boolean) does not exist
12. corr
功能说明:
corr(expression1, expression2)
函数用于计算两个表达式之间的相关系数,衡量它们的线性关系。测试语句:
select corr(user_id,age) from bdcis.tb_cis_user_induser_day limit 10;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
0.0481786865112495
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function corr(character varying, bigint) does not exist
13. count
功能说明:
count(expression)
函数用于计算表达式中非NULL值的数量。测试语句:
select area_code, count( distinct case when total_fee > 0 then user_id end ) --当月出账用户数 from gs_test.test_function_count group by area_code order by 1;
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
在梧桐中,执行错误,如下所示:
14. covar_pop
功能说明:
covar_pop(expression1, expression2)
函数用于计算总体协方差,衡量两个变量的总体线性关系。测试语句:
select covar_pop(user_id, age) from bdcis.tb_cis_user_induser_day limit 10;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
1829069825116110
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function covar_pop(character varying, bigint) does not exist
15. covar_samp
功能说明:
covar_samp(expression1, expression2)
函数用于计算样本协方差,衡量样本数据中两个变量的线性关系。测试语句:
select covar_samp(user_id, age) from bdcis.tb_cis_user_induser_day limit 10;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
1829069855719900
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function covar_samp(character varying, bigint) does not exist
16. group_id
功能说明:
group_id()
函数返回一个数字,表示分组中每个组合的唯一 ID,通常用于多级分组(如 ROLLUP 或 CUBE )。测试语句:
select user_id, age, grouping_id(user_id, age), group_id() from bdcis.tb_cis_user_induser_day group by user_id, rollup(user_id, age) order by user_id, age, grouping_id();
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function grouping_id(character varying, bigint) does not exist
17. grouping
功能说明:
grouping(expression)
函数用于在 ROLLUP 或 CUBE 查询中标识分组中是否使用了特定列。测试语句:
select user_id, age, grouping(user_id), grouping(age) from bdcis.tb_cis_user_induser_day group by rollup(user_id, age) order by user_id, age, grouping_id();
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function grouping_id(character varying, bigint) does not exist
18. grouping_id
功能说明:
grouping_id(expression1, expression2, ...)
函数返回一个标识符,表示 ROLLUP 或 CUBE 分组中的行组合,适用于复杂的分组查询。测试语句:
select user_id, age, grouping(user_id), grouping(age), grouping_id(user_id, age) as gr_id from bdcis.tb_cis_user_induser_day group by rollup(user_id, age);
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function grouping_id(character varying, bigint) does not exist
19. listagg
功能说明:
listagg(expression)
函数用于将分组中的字符串连接成一个字符串,通常用于生成逗号分隔的列表。测试语句:
select a.serv_number, --用户 listagg(distinct b.prov_name) from ( select distinct serv_number from gs_test.test_function_listagg01 where call_date >= '2024-06-01' and call_date <= '2024-06-10' ) a, gs_test.test_function_listagg02 b where --a.serv_number =b.serv_number --and b.statis_day>=20240310 b.statis_day <= 20240610 group by 1 order by 1;
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function listagg(character varying) does not exist
20. max
功能说明:
max(expression)
函数用于返回表达式中的最大值。测试语句:
select up_area_code , --地市 serv_number , --号码 stop_date , --管理停机时间 busi_code , --业务编码 busi_name , --业务名称 max(gsm_call_count) , --管理停机后通话次数 max(gsm_new_date) , --最新通话时间 max(gprs_call_count) , --管理停机后使用流量次数 max(gprs_new_date) --最新流量时间 from gs_test.test_function_max group by up_area_code,serv_number,stop_date,busi_code,busi_name order by up_area_code,serv_number;
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
在梧桐中输出结果如下图所示:
21. min
功能说明:
min(expression)
函数用于返回表达式中的最小值。测试语句:
select distinct serv_number, sum(arrear_fee), min(bill_cycle) from gs_test.test_function_min where bill_cycle >= '201801' and statis_month = 202404 group by serv_number order by serv_number;
Vertica 输出结果:
在 vertica 中输出结果如下图所示:
WutongDB 输出结果:
在梧桐中输出结果如下图所示:
22. regr_avgx
功能说明:
regr_avgx(expression1, expression2)
函数返回线性回归方程中x的平均值,适用于回归分析。测试语句:
select regr_avgx(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
86.2508241877663
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_avgx(character varying, bigint) does not exist
23. regr_avgy
功能说明:
regr_avgy(expression1, expression2)
函数返回线性回归方程中y的平均值,适用于回归分析。测试语句:
select regr_avgy(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
238042663808143
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_intercept(character varying, bigint) does not exist
24. regr_count
功能说明:
regr_count(expression1, expression2)
函数返回用于线性回归分析的数据对的数量。测试语句:
select regr_count(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
59766114
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_count(character varying, bigint) does not exist
25. regr_intercept
功能说明:
regr_intercept(expression1, expression2)
函数返回线性回归方程的截距,用于描述 y 与 x 的线性关系。测试语句:
select regr_intercept(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
233871150136412
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_intercept(character varying, bigint) does not exist
26. regr_r2
功能说明:
regr_r2(expression1, expression2)
函数返回线性回归方程的决定系数(R²),表示回归模型的拟合优度。测试语句:
select regr_r2(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
0.00232118583394925
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_r2(character varying, bigint) does not exist
27. regr_slope
功能说明:
regr_slope(expression1, expression2)
函数返回线性回归方程的斜率,表示 y 相对于 x 的变化率。测试语句:
select regr_slope(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
48364913738.6734
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_slope(character varying, bigint) does not exist
28. regr_sxx
功能说明:
regr_sxx(expression1, expression2)
函数返回x的平方和,用于线性回归分析中。测试语句:
select regr_sxx(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
2260241717219.03
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_sxx(character varying, bigint) does not exist
29. regr_sxy
功能说明:
regr_sxy(expression1, expression2)
函数返回 x 和 y 的协方差乘积(即xy的协方差和),用于线性回归分析中。这是计算回归系数的重要中间值。测试语句:
select regr_sxy(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
109316395681849000000000
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_sxy(character varying, bigint) does not exist
30. regr_syy
功能说明:
regr_syy(expression1, expression2)
函数返回y的平方和,用于线性回归分析中。这也是回归分析中计算 R² 等指标的重要中间值。测试语句:
select regr_syy(user_id, age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
2277748713630540000000000000000000000
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function regr_syy(character varying, bigint) does not exist
31. stddev
功能说明:
stddev(expression)
函数用于计算表达式的样本标准差,衡量数据的分散程度。测试语句:
select stddev(age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
194.468801380164
WutongDB 输出结果:
在梧桐中,执行结果如下所示:
194.468801380164
32. stddev_pop
功能说明:
stddev_pop(expression)
函数用于计算表达式的总体标准差,适用于对整体数据集的标准差分析。测试语句:
select stddev_pop(age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
194.468799753249
WutongDB 输出结果:
在梧桐中,执行结果如下所示:
194.468799753249
33. stddev_samp
功能说明:
stddev_samp(expression)
函数用于计算表达式的样本标准差,这与stddev
函数类似,通常在数据分析中作为默认的标准差计算方式。测试语句:
select stddev_samp(age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
194.489822484151
WutongDB 输出结果:
在梧桐中,执行结果如下所示:
194.489822484151
34. sum_float
功能说明:
sum_float(expression)
函数用于计算表达式中所有浮点数值的总和。与sum
函数类似,但特别适用于需要处理浮点数的场景。测试语句:
select sum_float(age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中输出结果如下所示:
5156872870
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function sum_float(bigint) does not exist
35. ts_first_value
功能说明:
ts_first_value(value, timestamp)
函数用于在时间序列数据中返回指定时间戳的第一个值,适用于处理时间序列中的首值分析。测试语句:
select ts_first_value(value, timestamp) as last_value from gs_test.time_series_date;
Vertica 输出结果:
在 vertica 中,执行结果函数不存在,如下所示:
Function ts_first_value(int, timestamp) does not exist, or permission is denied for ts_first_value(int, timestamp)
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function ts_first_value(bigint, timestamp without time zone) does not exist
36. ts_last_value
功能说明:
ts_last_value(value, timestamp)
函数用于在时间序列数据中返回指定时间戳的最后一个值,适用于处理时间序列中的末值分析。测试语句:
create table gs_test.time_series_date( id int, timestamp timestamp default current_timestamp, value int ); insert into gs_test.time_series_date (id, value) values (1, 10), (2, 20), (3, 30); select ts_last_value(value, timestamp) as last_value from gs_test.time_series_date;
Vertica 输出结果:
在 vertica 中,执行结果函数不存在,如下所示:
Function ts_last_value(int, timestamp) does not exist, or permission is denied for ts_last_value(int, timestamp)
WutongDB 输出结果:
在梧桐中,执行结果函数不存在,如下所示:
function ts_last_value(bigint, timestamp without time zone) does not exist
37. var_pop
功能说明:
var_pop(expression)
函数用于计算表达式的总体方差,适用于对整体数据集的方差分析。测试语句:
select var_pop(age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中,执行结果如下所示:
37826.290417191
WutongDB 输出结果:
在梧桐中,执行结果如下所示:
37826.290417190961
38. var_samp
功能说明:
var_samp(expression)
函数用于计算表达式的样本方差,适用于对样本数据集的方差分析。测试语句:
select var_samp(age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中,执行结果如下所示:
37826.2910499167
WutongDB 输出结果:
在梧桐中,执行结果如下所示:
37826.291049916734
39. variance
功能说明:
variance(expression)
函数用于计算表达式的样本方差,是var_samp
的同义词,通常在数据分析中用作计算数据分布的波动性。测试语句:
select variance(age) from bdcis.tb_cis_user_induser_day;
Vertica 输出结果:
在 vertica 中,执行结果如下所示:
37826.2910499167
WutongDB 输出结果:
在梧桐中,执行结果如下所示:
37826.291049916734
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。