Oracle SELECT COUNT (*)… GROUP BY… не возвращает строки с нулевым числом - PullRequest
1 голос
/ 20 октября 2010

Я попробовал решение, указанное в «mysql SELECT COUNT (*)… GROUP BY… не возвращать строки, где счетчик равен нулю», но у меня не получилось.

Вот SQL ::

SELECT empid, SUM (total_records) total_records  
  FROM (SELECT ID,  
               (CASE WHEN ID LIKE '2%'  THEN '2____'  
                     WHEN ID LIKE '3%'  THEN '3____'  
                     WHEN ID LIKE '99%' THEN '99____'  
               END) empid,  
               total_records  
          FROM tr  
         where ( id like '2%' or id like '3%' or id like '99%'))  
GROUP BY empid;  

Когда конкретное значение в empid SUM равно нулю, эта строка не отображается на выходе.Это показывает, что у нас нет данных (или суммы) для этого конкретного empid.Но возможно ли иметь «0», чтобы это конкретное значение отображалось в наборе результатов?

Ответы [ 3 ]

2 голосов
/ 20 октября 2010

Если добавить подробности к ответам ivanpro и Михаэля Голдштейна, приведем демонстрацию с фиктивной «таблицей» с тремя внешними объединенными значениями empid, сопоставленными с исходным запросом

SELECT a.empid, nvl(SUM (total_records),0) total_records  
  FROM (select '2____' empid from dual union select '3____' from dual 
                                       union select '99____' from dual) a 
       left outer join
       (SELECT ID,  
               (CASE WHEN ID LIKE '2%'  THEN '2____'  
                     WHEN ID LIKE '3%'  THEN '3____'  
                     WHEN ID LIKE '99%' THEN '99____'  
               END) empid,  
               total_records  
       FROM tr 
       where ( id like '2%' or id like '3%' or id like '99%')) b 
     on a.empid = b.empid
GROUP BY a.empid; 
0 голосов
/ 20 октября 2010

Я думаю, что вы ищете LEFT JOIN.Используйте это вместо ваших вложенных операторов SELECT.У меня нет примера для вас, но этот веб-сайт может вам помочь.

0 голосов
/ 20 октября 2010

В этом запросе вам не нужно объединять набор результатов с другим запросом, который находит пропущенные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...