Считать по дням, со всеми днями - PullRequest
0 голосов
/ 11 июня 2018

Мне нужно считать записи по дням, даже если за день не было записей.

Подсчитывать по дням, конечно, легко.

Но как я могу сделать это, чтобы напечатать информацию, которая в день 2018-01-10 была 0 записей?

Должен ли я использовать соединение по уровню?Пожалуйста, любая помощь будет хорошей.Не могу использовать plsql, просто оракул sql

1 Ответ

0 голосов
/ 11 июня 2018

Сначала вы генерируете каждую дату, которую хотите, во встроенном представлении.Я выбрал каждую дату на текущий год, потому что вы не указали.Затем вы оставили внешнее объединение на дату, используя любое поле даты, которое вы в этой таблице.Если вы рассчитываете на ненулевое поле из исходной таблицы, оно будет считать 0 строк в дни, когда нет соединения.

select Dates.r, count(tablename.id)
from (select trunc(sysdate,'YYYY') + level - 1 R
        from dual
      connect by level <= trunc(add_months(sysdate,12),'YYYY') - trunc(sysdate,'YYYY')) Dates
left join tablename
  on trunc(tablename.datefield) = Dates.r
group by Dates.r
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...