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

Truy vấn để chọn nhiều dữ liệu cùng với các giá trị trung bình trong một thời gian cụ thể bằng cách sử dụng Postgres

Bạn có thể chuyển đổi avg_aa thành bigint hoặc double precision. Đầu tiên rút ngắn id và tên từ trường tên, sau đó tính giá trị trung bình theo id và ngày.

-- PostgreSQL(v11)
    WITH cte_t AS (
     SELECT LEFT(name, 1) id
          , RIGHT(name, POSITION('.' IN REVERSE(name)) - 1) t_name
          , value
          , time_stamp
     FROM test
)
SELECT id
          , time_stamp :: DATE "date"
          , AVG(CASE WHEN t_name = 'aa' THEN value END) :: BIGINT "avg(aa)"
          , AVG(CASE WHEN t_name = 'bb' THEN value END) :: BIGINT "avg(bb)"
          , AVG(CASE WHEN t_name = 'cc' THEN value END) :: BIGINT "avg(cc)"
     FROM cte_t
     GROUP BY id, time_stamp :: DATE
     ORDER BY "date", id;

Vui lòng kiểm tra từ url https://dbfiddle.uk/?rdbms=postgres_19757289

Sử dụng độ chính xác kép trong cột trung bình

-- PostgreSQL(v11)
WITH cte_t AS (
     SELECT LEFT(name, 1) id
          , RIGHT(name, POSITION('.' IN REVERSE(name)) - 1) t_name
          , value
          , time_stamp
     FROM test
)
SELECT id
          , time_stamp :: DATE "date"
          , AVG(CASE WHEN t_name = 'aa' THEN value END) :: DOUBLE PRECISION "avg(aa)"
          , AVG(CASE WHEN t_name = 'bb' THEN value END) :: DOUBLE PRECISION "avg(bb)"
          , AVG(CASE WHEN t_name = 'cc' THEN value END) :: DOUBLE PRECISION "avg(cc)"
     FROM cte_t
     GROUP BY id, time_stamp :: DATE
     ORDER BY "date", id;

Vui lòng kiểm tra từ url https://dbfiddle.uk/?rdbms=postgres_8038




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lấy chuỗi ngày bắt đầu và kết thúc của tuần trong PostgreSQL?

  2. Psql liệt kê tất cả các bảng

  3. Không thể tạo dịch vụ được yêu cầu [org.hibernate.engine.jdbc.env.spi.JdbcEnosystem]

  4. Làm thế nào để quản lý các kết nối db trên máy chủ?

  5. PostgreSQL đến Data-Warehouse:Cách tiếp cận tốt nhất cho ETL gần thời gian thực / trích xuất dữ liệu