如何计算sql中包含非零值的行

Sat*_*esh -1 sql oracle oracle11g

SELECT round(COUNT(dmd_1wk),2) AS NBR_ITEMS_1WK
  FROM table;
Run Code Online (Sandbox Code Playgroud)

字段dmd_1wk中有很多零.如何计算非零值?

Tar*_*ryn 5

听起来你只需要添加一个WHERE子句:

SELECT 
      round(COUNT(dmd_1wk),2) AS NBR_ITEMS_1WK
FROM table
WHERE dmd_1wk <> 0;
Run Code Online (Sandbox Code Playgroud)

如果你想要非零和零值的计数,那么你可以使用类似的东西:

SELECT 
   round(COUNT(case when dmd_1wk <> 0 then dmd_1wk end),2) AS NBR_ITEMS_1WK_NonZero,
   round(COUNT(case when dmd_1wk = 0 then dmd_1wk end),2) AS NBR_ITEMS_1WK_Zero
FROM table;
Run Code Online (Sandbox Code Playgroud)