【问题标题】:Join result of three queries into one query in oracle在oracle中将三个查询的结果合并为一个查询
【发布时间】:2019-04-05 03:08:50
【问题描述】:

我想将三个查询的结果加到一个查询中:

select file_name,count(distinct uniq_key) FILE_LOAD_REC_COUNT from STG_STRR_CTDI_CMTX2_TEMP1 group by file_name;
select file_name,count(distinct uniq_key)  ERR_REC_COUNT_M from STG_STRR_CTDI_ERR_DESC1 where err_desc in ('DUPLICATE RECORD','MISSING MANDATORY DEVICE DETAILS') group by file_name;
select file_name,count(distinct uniq_key)  ERR_REC_COUNT_O from STG_STRR_CTDI_ERR_DESC1 where err_desc not in ('DUPLICATE RECORD','MISSING MANDATORY DEVICE DETAILS') group by file_name;

我想要以下格式的结果:

FILE_NAME|FILE_LOAD_REC_COUNT|ERR_REC_COUNT_M|ERR_REC_COUNT_O
ABC.json|10|10|20|29

我该怎么做呢?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:
    1. 合并所有两个表

    选择文件名, COUNT (DISTINCT uniq_key) FILE_LOAD_REC_COUNT, 0 ERR_REC_COUNT_M, 0 ERR_REC_COUNT_O 从 STG_STRR_CTDI_CMTX2_TEMP1 按文件名分组 联合所有

    选择文件名, 0 FILE_LOAD_REC_COUNT, 计数(不同的情况 当 err_desc IN ('DUPLICATE RECORD', '缺少强制性设备详细信息')然后 uniq_key END)ERR_REC_COUNT_M, 计数(不同的情况 当 err_desc 不在('重复记录', '缺少强制性设备详细信息')然后 uniq_key END) ERR_REC_COUNT_O 从 STG_STRR_CTDI_ERR_DESC1 按文件名分组

    1. 联合后查询

    选择文件名, SUM (FILE_LOAD_REC_COUNT) FILE_LOAD_REC_COUNT, SUM (ERR_REC_COUNT_M) ERR_REC_COUNT_M, SUM (ERR_REC_COUNT_O) ERR_REC_COUNT_O 从 (

    选择文件名, COUNT (DISTINCT uniq_key) FILE_LOAD_REC_COUNT, 0 ERR_REC_COUNT_M, 0 ERR_REC_COUNT_O 从 STG_STRR_CTDI_CMTX2_TEMP1 按文件名分组 联合所有

    选择文件名, 0 FILE_LOAD_REC_COUNT, 计数(不同的情况 当 err_desc IN ('DUPLICATE RECORD', '缺少强制性设备详细信息')然后 uniq_key END)ERR_REC_COUNT_M, 计数(不同的情况 当 err_desc 不在('重复记录', '缺少强制性设备详细信息')然后 uniq_key END) ERR_REC_COUNT_O 从 STG_STRR_CTDI_ERR_DESC1 按文件名分组 ) 按文件名分组;

    【讨论】:

    • 非常感谢@dzungnv38,这正是我想要的,效果很好。非常感谢您的帮助。干杯
    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多