选择相对重复项中的最新日期

时间:2018-03-20 10:04:31

标签: postgresql date greatest-n-per-group

我有一张桌子"安装"和一张桌子" controle"。对于一个安装,可能有几个控件具有不同的控制日期(字段:controle.des_date_control)。因此,几个控件可能具有相同的installation_id。

 ════════════╤════════════╤══════════════ 
  id_install │ id_control │ date_control
 ════════════╪════════════╪══════════════ 
  9001       │ 194        │ 1905-07-03    
 ────────────┼────────────┼────────────── 
  9001       │ 193        │ 1900-01-01    
 ════════════╧════════════╧══════════════ 

我想保留id_control = 194

的行

现在,我要做的是创建un view,列出每个安装的最新控件:我这样做了,将 max 放在字段前面" des_date_control&#34 ; :

CREATE OR REPLACE VIEW s_anc.v_anc_test AS 
   SELECT installation.id_installation,
   controle.id_controle,
   controle.des_date_installation,
   max(controle.des_date_control),
   controle.des_interval_control,
   controle.cl_date_prochain_control,
   controle.cl_classe_cbf
FROM 
   s_anc.installation,
   s_anc.controle
WHERE upper(installation.archivage::text) = 'FALSE'::text 
   AND controle.cl_classe_cbf = 'Absence de défaut'::text 
   AND (controle.des_date_installation < '2014-01-01'::date OR controle.des_date_installation IS NULL) 
   AND installation.id_installation = controle.id_installation
GROUP BY installation.id_installation,
   controle.id_controle,
   controle.des_date_installation,
   controle.des_interval_control,
   controle.cl_date_prochain_control,
   controle.cl_classe_cbf;

但视图最终会列出所有控件,而不仅仅是最新的控件......

你能帮帮我吗?非常感谢!

0 个答案:

没有答案