sql - 使用 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;`
解决方案
试试这个来获取所有记录:
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;
推荐阅读
- node.js - Viber - 发送键盘消息时隐藏用户字段输入
- sql - 透视数据并将单列放入具有关联行的多列中
- javascript - 如何从 javascript 文件启动 android 服务
- c# - RSA解密异常:要解密的数据长度对于此密钥的大小无效
- c# - 我不明白这里的“新字符串”和 [i]
- php - mysql 在同一个mysql 插入中使用lastInsertID?
- vue.js - vue preset.json vue 创建消息
- javascript - 如何将回调的参数分配给全局变量?
- serilog - 使用 Serilog 保存到文件或本地数据库,哪个更好或更快?
- java - 如何在 Android Studio 中显示书籍列表?