首页 > 编程语言 >PG plpython存储过程计算结果直接入库

PG plpython存储过程计算结果直接入库

时间:2022-11-01 14:22:38浏览次数:53  
标签:pv behavior di charge tag PG dwd plpython 计算结果

> 处理函数(返回多条结果数组)

drop FUNCTION cal_charge_sample(records dwd_pv_behavior_di[]);
CREATE FUNCTION cal_charge_sample(records dwd_pv_behavior_di[]) 
RETURNS json AS $$
import json
import pandas as pd
df = pd.DataFrame.from_records(records)
result_tag = [{"vin":'AHHDHD',"tag":'片段1'},{"vin":'AHHDHD',"tag":'片段2'}]
return json.dumps(result_tag)
$$ LANGUAGE plpython3u;

  >> 查询结果

 

> 处理函数(返回单条)

drop FUNCTION cal_charge_sample(records dwd_pv_behavior_di[]);
CREATE FUNCTION cal_charge_sample(records dwd_pv_behavior_di[]) 
RETURNS json AS $$
import json
import pandas as pd
df = pd.DataFrame.from_records(records)
result_tag = {"vin":'AHHDHD',"tag":'片段1'}
return json.dumps(result_tag)
$$ LANGUAGE plpython3u;

  >> 查询结果

 

1、结算结果为单条插入
  

with result as (select cal_charge_cycles(array_agg(dwd_pv_behavior_di.*)) from dwd.dwd_pv_behavior_di GROUP BY vin) 
insert into dws.dws_pv_behavior_charge_diselect * from result;


2、计算结果为多条插入

with result as (
select unnest(cal_cycle_sample)::json as tag_res from 
select dws.cal_cycle_sample('charge',array_agg(dwd_pv_behavior_di.*),'[{"id":106}]') from dwd.dwd_pv_behavior_di group by vin
as t1)
insert into dws.dws_pv_behavior_charge_di
select res.* from result,json_populate_record(null::dws.dws_pv_behavior_charge_di,tag_res) as res

  

标签:pv,behavior,di,charge,tag,PG,dwd,plpython,计算结果
From: https://www.cnblogs.com/irobotzz/p/16847530.html

相关文章

  • mac 安装psycopg2解决方法
    通过pipinstallpsycopg2来安装这个包一直失败,在网上找了其他的安装方式,最终选择了以下方式来达到目的:pipinstallpsycopg2-binary如遇安装过程失败,请看下网络速度是......
  • pgsql 自定义函数
    CREATEORREPLACEFUNCTIONtest1(idINTEGER,id1INTEGER)RETURNSINTEGERLANGUAGEplpgsqlAS$$declarecountinteger;begincount=(selectarray_positio......
  • KPGAME - A game with probability(概率dp,博弈)
    先考虑一下如果我想赢得游戏,我会采取的最优策略是什么。首先,想赢得游戏就是要取到最后一个石子,每次抛硬币相当于给你一次机会,每次机会都有相同概率取到石子,显然,最优策略就......
  • 【ZJOI2019】开关(PGF)
    听说这玩意叫PGF?方便起见,令\(p_i=\frac{p_i}{\sum_jp_j}\)。设\(F_i(x)\)表示对于第\(i\)个开关而言,对其进行\(k\)次操作之后,它达到目标状态的概率的EGF(其实文......
  • FPGA中串口通信的时钟频率和波特率计数
    目录1.什么是波特率2.串口传输格式3.时钟频率的计数器分频和波特率关系1.什么是波特率波特率bandrate,指的是串口通信的速率,即串口通信时每秒钟可以传输多少个二进制......
  • pgsql指定部分字段去重
    --基于ig.start_pile,ig.end_pile字段去重witheteas(SELECT*from(SELECTROW_NUMBER()OVER(PARTITIONbyig.start_pile,ig.end_pileORDERBYig.start_pile......
  • 基于FPGA的双目相机目标深度图像提取实现
    目录一、理论基础二、核心程序三、测试结果一、理论基础系统的整体框架结构如下图所示:    双目立体视觉模拟了人类双眼感知环境的方式其结构如图2-1所示,主要包......
  • FPGA驱动VGA显示
    VGA(VideoGraphicsArray),视频图形阵列,是一种视频传输标准,具有分辨率高、显示速度快、颜色丰富等优点,不支持音频传输。1.VGA简介1.1VGA接口●VGA接口:  VGA是一种D......
  • pg_auto_failover 高可用PostgreSQL
    1、从软件包安装pg_auto_failover#Addtherepositorytoyoursystemcurlhttps://install.citusdata.com/community/rpm.sh|sudobash#Installpg_auto_failover......
  • pg_basebackup备份恢复(带自定义表空间)
    环境:OS:Centos7DB:13.8#####################################创建自定义表空间##############################1.创建表空间自定义目录su-postgresmkdir-p/opt/pg1......