postgresql 数据库倍频数据函数

CREATE OR REPLACE FUNCTION fun_addrow_index(index NUMERIC,o_rate NUMERIC,t_rate NUMERIC)
RETURNS VARCHAR AS $$
DECLARE
   result_list VARCHAR;
	 res_gbs NUMERIC;
	 max int  ;
   times int;
	 res_tmp NUMERIC;
	 max_index NUMERIC;
	 min_index NUMERIC;
BEGIN
--先计算两采样率最小公倍数
BEGIN
IF o_rate > t_rate THEN
	max=o_rate;
ELSE
	max=t_rate;
END IF;
times=max;
while  times>=t_rate LOOP
		IF(times%o_rate=0 and times%t_rate=0) then
			res_gbs=times;
			EXIT ;
		END IF;
	times=times+1;
END LOOP;
END;
BEGIN
--计算采样率对齐后每行数据的index
select CEILING(((index-1)*(res_gbs/o_rate)+1)/(res_gbs/t_rate)) into min_index;
select FLOOR((index*(res_gbs/o_rate))/(res_gbs/t_rate))into max_index;
END;
IF min_index=max_index THEN
return min_index;
ELSE 
res_tmp=min_index;
result_list=min_index;
while  max_index>res_tmp LOOP
	res_tmp=res_tmp+1;
	result_list=result_list||','||res_tmp;
END LOOP;
return result_list;
END IF;
END;
$$
LANGUAGE plpgsql 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值