首页 > 解决方案 > 使用 MAX() 分组

问题描述

我是 sql 新手,我有一个问题要解决,所以我需要一些帮助

例如,在 04/2019 周期间,与真实信息相比,缺失了 720 个突变

实际上问题来自于 query 。实际上,在这个组中,由 CODE_COMMUNE 和 NOM_SITE 组成,并且为这个公社和这个站点返回字段的值 MAX。这意味着当同一个公社的同一个位点有多个突变时,只返回一个突变,这就解释了缺失的突变。

所以我想在同一个公社的同一个地点返回所有的突变。

我怎样才能做到这一点 ?

`select IPO_VILLE.CODE_COMMUNE, 
   IPO_SITE.NOM_SITE,
     MAX(IPO_AT.DATE_MUTATION) DATE_MUTATION,
     MAX(IPO_AT.IAR_NDFICTIF) IAR_NDFICTIF,
     MAX(IPO_AT.MUTATION_REALISEE_PAR) MUTATION_REALISEE_PAR,
     MAX(IPO_AT.CAUSE_MUTATION) CAUSE_MUTATION,
     MAX(IPO_AT.CODE_BASICAT) CODE_BASICAT,
     MAX(IPO_AT.PIGTAIL_FIBRE_CONN_COURANT) FIBRE_COURANT,
     MAX(IPO_AT.PIGTAIL_FIBRE_CONN_CIBLE) FIBRE_CIBLE,
     MAX(IPO_AT.NOM_PB_COURANT) NOM_PB_COURANT,
     MAX(IPO_AT.NOM_PB) NOM_PB_CIBLE,
     MAX(IPO_AT.NOM_PM_COURANT) NOM_PM_COURANT,
     MAX(IPO_AT.NOM_PM) NOM_PM_CIBLE,
     MAX(IPO_AT.INTERVENTION_NUMBER) INTERVENTION_NUMBER,
     MAX(IPO_AT.GPC_BASE) GPC_BASE
from EDRPRE.IPO_AT IPO_AT
left join EDRPRE.IPO_LOGEMENT IPO_LOGEMENT ON IPO_AT.OBJECTID_LOGEMENT = IPO_LOGEMENT.OBJECTID_LOGEMENT
left join EDRPRE.IPO_SITE IPO_SITE ON IPO_LOGEMENT.OBJECTID_IMMEUBLE = IPO_SITE.OBJECTID_SITE
left join EDRPRE.IPO_RUE IPO_RUE ON IPO_SITE.OBJECTID_RUE = IPO_RUE.OBJECTID_RUE
left join EDRPRE.IPO_VILLE IPO_VILLE ON IPO_RUE.OBJECTID_COMMUNE  = IPO_VILLE.OBJECTID_COMMUNE
where IPO_AT.DATE_MUTATION is not null and IPO_AT.DATE_MUTATION >= TRUNC(sysdate-5, 'DD')
and IPO_VILLE.CODE_COMMUNE is not null and IPO_SITE.NOM_SITE is not null
group by IPO_VILLE.CODE_COMMUNE,IPO_SITE.NOM_SITE
order by IPO_VILLE.CODE_COMMUNE,IPO_SITE.NOM_SITE;`

标签: sqloracle

解决方案


试试这个来获取所有记录:

select IPO_VILLE.CODE_COMMUNE, 
   IPO_SITE.NOM_SITE,
     IPO_AT.DATE_MUTATION ,
     IPO_AT.IAR_NDFICTIF ,
     IPO_AT.MUTATION_REALISEE_PAR ,
     IPO_AT.CAUSE_MUTATION ,
     IPO_AT.CODE_BASICAT ,
     IPO_AT.PIGTAIL_FIBRE_CONN_COURANT ,
     IPO_AT.PIGTAIL_FIBRE_CONN_CIBLE ,
     IPO_AT.NOM_PB_COURANT ,
     IPO_AT.NOM_PB ,
     IPO_AT.NOM_PM_COURANT ,
     IPO_AT.NOM_PM ,
     IPO_AT.INTERVENTION_NUMBER ,
     IPO_AT.GPC_BASE 
from EDRPRE.IPO_AT IPO_AT
left join EDRPRE.IPO_LOGEMENT IPO_LOGEMENT ON IPO_AT.OBJECTID_LOGEMENT = IPO_LOGEMENT.OBJECTID_LOGEMENT
left join EDRPRE.IPO_SITE IPO_SITE ON IPO_LOGEMENT.OBJECTID_IMMEUBLE = IPO_SITE.OBJECTID_SITE
left join EDRPRE.IPO_RUE IPO_RUE ON IPO_SITE.OBJECTID_RUE = IPO_RUE.OBJECTID_RUE
left join EDRPRE.IPO_VILLE IPO_VILLE ON IPO_RUE.OBJECTID_COMMUNE  = IPO_VILLE.OBJECTID_COMMUNE
where IPO_AT.DATE_MUTATION is not null and IPO_AT.DATE_MUTATION >= TRUNC(sysdate-5, 'DD')
and IPO_VILLE.CODE_COMMUNE is not null and IPO_SITE.NOM_SITE is not null 
order by IPO_VILLE.CODE_COMMUNE,IPO_SITE.NOM_SITE;

推荐阅读