Oracle COUNT()函数

时间:2015-06-11 13:53:01

标签: sql oracle count

我有这个问题:

    select dates,To_char(dates,'DAY') DAYs FROM
    (
     select trunc(ADD_MONTHS(sysdate,-1),'MM') +  level -1 Dates from dual connect by
      level <= ADD_MONTHS(trunc(sysdate,'MM'),1)-1 -  trunc(sysdate,'MM')+1
   ) Where To_char(dates,'DY') NOT IN ('SA','SO')

上面查询的输出是:

01.05.2015  FREITAG   
04.05.2015  MONTAG    
05.05.2015  DIENSTAG  
06.05.2015  MITTWOCH  
07.05.2015  DONNERSTAG
08.05.2015  FREITAG   
11.05.2015  MONTAG    
12.05.2015  DIENSTAG  
13.05.2015  MITTWOCH  
14.05.2015  DONNERSTAG
15.05.2015  FREITAG   
18.05.2015  MONTAG    
19.05.2015  DIENSTAG  
20.05.2015  MITTWOCH  
21.05.2015  DONNERSTAG
22.05.2015  FREITAG   
25.05.2015  MONTAG    
26.05.2015  DIENSTAG  
27.05.2015  MITTWOCH  
28.05.2015  DONNERSTAG
29.05.2015  FREITAG   

我没想到这个输出。相反,我想计算所有这些日子(21),这应该是我唯一的输出。

最终结果应为:

DAYS
--
21

1 个答案:

答案 0 :(得分:1)

select count(*) DAYs FROM
    (
     select trunc(ADD_MONTHS(sysdate,-1),'MM') +  level -1 Dates from dual connect by
      level <= ADD_MONTHS(trunc(sysdate,'MM'),1)-1 -  trunc(sysdate,'MM')+1
   ) Where To_char(dates,'DY') NOT IN ('SA','SO')