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

Cách tạo bảng ảo để tạo chuỗi ngày trong PostgreSQL?

Danh sách ngày

Sử dụng hàm create_series để có được danh sách các số mà bạn có thể thêm vào một ngày để có được danh sách các ngày:

SELECT CURRENT_DATE + s.a AS dates 
  FROM generate_series(0,14,7) as s(a);

Kết quả:

dates
------------
2004-02-05
2004-02-12
2004-02-19

Xoay vòng

Phần sau của câu hỏi của bạn liên quan đến việc xoay tập hợp kết quả - chuyển đổi dữ liệu hàng thành dữ liệu cột. PIVOT và UNPIVOT là ANSI, nhưng tôi không thấy chúng là được hỗ trợ bởi PostgreSQL hiện tại . Phương tiện được hỗ trợ nhất quán nhất để xoay vòng một truy vấn là sử dụng các hàm tổng hợp:

   SELECT t.account,
          SUM(CASE WHEN t.date = '2010-01-01' THEN t.amount END) AS '2010-01-01',
          SUM(CASE WHEN t.date = '2010-01-02' THEN t.amount END) AS '2010-01-02',
          SUM(CASE WHEN t.date = '2010-01-03' THEN t.amount END) AS '2010-01-03',
          SUM(t.amount) AS Balance
     FROM (SELECT CURRENT_DATE + s.a AS dates 
             FROM generate_series(0,14,7) as s(a)) x
LEFT JOIN TRANSACTIONS y ON y.date = x.date
 GROUP BY t.account

Cột động

... có nghĩa là SQL động .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các thông số có giá trị của bảng Postgresql JDBC

  2. Sử dụng regex ở WHERE trong Postgres

  3. Nhập ENUM trong SQLAlchemy với PostgreSQL

  4. Làm cách nào để thực hiện sao lưu từ Postgresql-DB qua JDBC?

  5. Cách thay đổi loại cột từ ký tự thay đổi thành số nguyên bằng cách sử dụng sqlalchemy-migrate