PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Truy vấn truy xuất số lượng mỗi giờ và số 0 nếu không có

Bạn cần tạo giờ. Đây là một phương pháp sử dụng 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;

Hoặc cách khác:

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. kết nối db heroku từ chối

  2. Chuyển đổi các ký tự có dấu trong PostgreSQL?

  3. Cách kết nối postgresql trong hibernate.cfg.xml

  4. SQL SELECT tốc độ int so với varchar

  5. Hiệu suất PostgreSQL của SQL đặc biệt so với các hàm