PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Заявка за извличане на брой на час и нула, ако няма

Трябва да генерирате часовете. Ето един метод, използващ generate_series() :

select '00:00'::time + g.h * interval '1 hour',
       count(order_id) as orders
from generate_series(0, 23, 1) g(h) left join
     order_table ot
     on extract(hour from create_date) = g.h and
        date_trunc('day', create_date) = '2013-05-09'
group by g.h
order by g.h;

Или алтернативно:

select g.dte, count(order_id) as orders
from generate_series('2013-05-09'::timestamp, '2013-05-09 23:00:00'::timestamp, interval '1 hour') g(dte) left join
     order_table ot
     on g.dte = date_trunc('hour', create_date) 
group by g.dte
order by g.dte;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кой е най-добрият начин за зареждане на огромно количество данни в PostgreSQL?

  2. Как да променя потребителската парола на PostgreSQL?

  3. PostgreSQL:Създаване на индекс за дължината на всички полета на таблицата

  4. Postgres 9.4 виси по време на обновяване на материализирания изглед

  5. Как и защо да добавя първични ключове към моята таблица на SQL база данни, когато вече имам индекс