Sql Oracle union捕获所有值

Sql Oracle union捕获所有值,sql,oracle,Sql,Oracle,我有一个表,它有一个名为PEGA ID的列,该列的值为111、222等,还有一些0,当我在下面做qry时,所有的0都被过滤掉了。我如何计算这些0,我可以使用union吗 SELECT ivr.dw_dealer_id, ivr.dw_product_id, ivr.dw_program_type_id, ivr.dw_month_id, TO_CHAR(ivr_update_dt, 'YYYYMM') buss_month, coun

我有一个表,它有一个名为PEGA ID的列,该列的值为111、222等,还有一些0,当我在下面做qry时,所有的0都被过滤掉了。我如何计算这些0,我可以使用union吗

SELECT  
    ivr.dw_dealer_id, 
    ivr.dw_product_id, 
    ivr.dw_program_type_id, 
    ivr.dw_month_id, 
    TO_CHAR(ivr_update_dt, 'YYYYMM') buss_month, 
    count(*)
FROM  idm_ivr_interaction ivr, stgdba.interactions intr
WHERE ivr.cti_rec_id = intr.pega_id

编辑:由于OP特别提到它是
0
而不是null,因此我们将查询更改为使用
case

count(当ivr.dw\u dealer\u id=0时,则为1,否则ivr.dw\u dealer\u id结束)

或者只对last
使用查询

SELECT  
        ivr.dw_dealer_id, 
        ivr.dw_product_id, 
        ivr.dw_program_type_id, 
        ivr.dw_month_id, 
        TO_CHAR(ivr_update_dt, 'YYYYMM') buss_month, 
        count(ivr.dw_dealer_id) as counts
    FROM  idm_ivr_interaction ivr, stgdba.interactions intr
    WHERE ivr.cti_rec_id = intr.pega_id
    AND (intr.pega_id IS NULL OR ivr.cti_rec_id IS NULL)

在id周围包装
nvl

SELECT  
    ivr.dw_dealer_id, 
    ivr.dw_product_id, 
    ivr.dw_program_type_id, 
    ivr.dw_month_id, 
    TO_CHAR(ivr_update_dt, 'YYYYMM') buss_month, 
    count(nvl(ivr.dw_dealer_id,1))
FROM  idm_ivr_interaction ivr, stgdba.interactions intr
WHERE ivr.cti_rec_id = intr.pega_id
AND (intr.pega_id IS NULL OR ivr.cti_rec_id IS NULL)
  • 顺便说一句,应该有一个
    分组依据
    。。。使用您正在使用的
    计数

您的意思是0还是空?cti_rec_id和pega_id列的数据类型是什么?顺便说一句,您能给我们看一下表格和一些示例数据吗?如果您也能给我们提供预期的输出,那就更好了。。不管怎样,如果没有
分组依据
,如何在oracle中运行聚合查询?我有分组依据,但我没有将其粘贴到这里,很抱歉出现混淆预期输出将是stgdba.interactions intr表中的所有记录计数,包括pega id的0,但现在stgdba.interactions intr和idm_ivr_interaction ivr之间有一个连接,所有具有0的pega id都将被过滤。pega的值不为空。当我们使用
CASE
时,您可以尝试以上编辑的查询和评论(请?:)我没有在计数中遵循它(当ivr.dw_dealer_id=0时,则为1,否则为ivr.dw_dealer_id)作为计数,您是说当ivr.dw_dealer_id为0时,但我们没有;如果没有这样的例子,我们在交互表中有intr.pega_id=0,请出示您的表好吗?那样容易多了。否则就有点盲目猜测…:$完全删除该案例,只需尝试使用我添加的两行
is null
即可。选择dw_dealer_id,-1作为dw_产品_id,dw_程序_类型_id,dw_month_id,TO_CHAR(cti.buss_dt,'yyyyyymm')buss_month,count(nvl(intr.pega_id,1)),从idm_-cti-cti调用_-dtl-cti,stgdba.interactions intr,ids intr,idm_month u-md其中cti=inta和pega(intr.pega_id为NULL或cti.cti_rec_id为NULL)和TRUNC(cti.buss_dt)介于'DD-MON-yyyyyy'和'DD-MON-yyyyyy'之间,且TO_CHAR(cti.buss_dt,'yyyyyyymm')=md.clndr_yyyyyyyyyymm分组依据TO_CHAR(cti.buss_dt,'yyyyyyyyyymm')、dw月号、dw经销商号、dw产品号、dw计划号