繁体   English   中英

在Oracle中按一列选择不同,但也显示多列

[英]Select distinct by one column in Oracle but displaying multiple columns too

我有这个查询:

    select DISTINCT cpc.EXTRACT_ID, cpc.OS_ID,...,cpvi.VOYAGE_STRT_DT, 
cpob.FISCAL_MONTH_START_DT from CPOB_PROCESS_CTRL cpc
    inner join CPOB_PLY_OUTSTD_BAL cpob on cpc.BRAND_NAME
 = cpob.BRAND_ID and cpc.SHIP_NAME = cpob.SHIP_NAME
    inner join CPOB_VOYAGE_INFO cpvi on cpc.VOYAGE_ID = cpvi.VOYAGE_ID 

问题是我希望列cpc.EXTRACT_ID不在结果上重复。 当我只在查询中选择cpc.EXTRACT_ID时,结果是准确的,并且查询中不包含cpc.EXTRACT_ID重复结果

   select DISTINCT cpc.EXTRACT_ID from CPOB_PROCESS_CTRL cpc
        inner join CPOB_PLY_OUTSTD_BAL cpob on cpc.BRAND_NAME
     = cpob.BRAND_ID and cpc.SHIP_NAME = cpob.SHIP_NAME
        inner join CPOB_VOYAGE_INFO cpvi on cpc.VOYAGE_ID = cpvi.VOYAGE_ID 

但是我在结果中也需要其他字段,我不在乎是否要重复其他字段,只需cpc.EXTRACT_ID 如何将第一个脚本更改为期望的结果?

如果您不关心其他列,请汇总它们,例如

select cpc.EXTRACT_ID, 
       max(cpc.OS_ID) os_id,
       max(cpvi.VOYAGE_STRT_DT) voyage_strt_dt,
       max(cpob.FISCAL_MONTH_START_DT) fiscal_month_start_dt
from ...
group by cpc.extract_id

如果这不是您想要的,请发布一些示例数据和所需结果。 这可能会帮助我们为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM