在同一查询中选择并更新PostgreSQL以进行优化

时间:2017-03-13 18:29:34

标签: postgresql bigdata database

我正在尝试创建一个查询,以便从表X中动态更新表Y中的某些值。

我当前正在处理一个托管10kk行的数据库,我想优化处理的时间。

选择

SELECT cycle_completa.numcycle AS actual_cycle, 
    min(cycle_completa.pump1pre) AS min_pump1pre, 
    min(cycle_completa.pump2pre) AS min_pump2pre, 
    min(cycle_completa.pump3pre) AS min_pump3pre, 
    min(cycle_completa.slidevel) AS min_slidevel, 
    min(cycle_completa.slidepos) AS min_slidepos, 
    min(cycle_completa.slideforce) AS min_slideforce, 
    min(cycle_completa.slideservopilotpre) AS min_slideservopilotpre, 
    min(cycle_completa.slidecentralpre) AS min_slidecentralpre, 
    min(cycle_completa.slidelateralpre) AS min_slidelateralpre, 
    min(cycle_completa.slideringpre) AS min_slideringpre, 
    min(cycle_completa.slidepistonpre) AS min_slidepistonpre, 
    min(cycle_completa.slidey42pre) AS min_slidey42pre, 
    min(cycle_completa.cushionforce) AS min_cushionforce, 
    min(cycle_completa.cushionservopilotpre) AS min_cushionservopilotpre,
    min(cycle_completa.cushionpistonpre) AS min_cushionpistonpre, 
    min(cycle_completa.cushionringpre) AS min_cushionringpre, 
    min(cycle_completa.pfillaccumpre) AS min_pfillaccumpre, 
    min(cycle_completa.pfillcentralpre) AS min_pfillcentralpre, 
    min(cycle_completa.pfilllateralpre) AS min_pfilllateralpre, 
    min(cycle_completa.pfillunlockingpre) AS min_pfillunlockingpre, 
    min(cycle_completa.reducedauxpumppre) AS min_reducedauxpumppre,
    min(cycle_completa.tankoiltemp) AS min_tankoiltemp
FROM cycle_completa
WHERE slidestage = 17
GROUP BY cycle_completa.numcycle

更新:

UPDATE cycle_parametros
SET seg3_min_valor_fmant_pump1pre = min_pump1pre,
    seg3_min_valor_fmant_pump2pre = min_pump2pre,
    seg3_min_valor_fmant_pump3pre = min_pump3pre,
    seg3_min_valor_fmant_slidevel = min_slidevel,
    seg3_min_valor_fmant_slidepos = min_slidepos,
    seg3_min_valor_fmant_slideforce = min_slideforce,
    seg3_min_valor_fmant_slideservopilotpre = min_slideservopilotpre,
    seg3_min_valor_fmant_slidecentralpre = min_slidecentralpre,
    seg3_min_valor_fmant_slidelateralpre = min_slidelateralpre,
    seg3_min_valor_fmant_slideringpre = min_slideringpre,
    seg3_min_valor_fmant_slidepistonpre = min_slidepistonpre,
    seg3_min_valor_fmant_slidey42pre = min_slidey42pre,
    seg3_min_valor_fmant_cushionforce = min_cushionforce,
    seg3_min_valor_fmant_cushionservopilotpre = min_cushionservopilotpre,
    seg3_min_valor_fmant_cushionpistonpre = min_cushionpistonpre,
    seg3_min_valor_fmant_cushionringpre = min_cushionringpre,
    seg3_min_valor_fmant_pfillaccumpre = min_pfillaccumpre,
    seg3_min_valor_fmant_pfillcentralpre = min_pfillcentralpre,
    seg3_min_valor_fmant_pfilllateralpre = min_pfilllateralpre,
    seg3_min_valor_fmant_pfillunlockingpre = min_pfillunlockingpre,
    seg3_min_valor_fmant_reducedauxpumppre = min_reducedauxpumppre,
    seg3_min_valor_fmant_tankoiltemp = min_tankoiltemp
WHERE numcycle = actual_cycle

谢谢!

1 个答案:

答案 0 :(得分:1)

以下查询应该有效:

id_taxe     nm_user   dt_taxe      vl_taxe
728         Maria     2017-01-01   17091.07048034668 , 
                      2017-02-01   14091.07048034668,
                      2017-03-01   1021.07048034668
731         Pedro     2017-01-01   16353.569854736328,
                      2017-02-01   6353.56231239