PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kueri untuk memilih beberapa data bersama dengan nilai rata-rata di antara waktu tertentu menggunakan Postgres

Anda dapat mengonversi avg_aa baik bigint atau presisi ganda. Pertama kurangi id dan nama dari kolom nama kemudian hitung rata-rata berdasarkan id dan tanggal.

-- 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;

Silakan periksa dari url https://dbfiddle.uk/?rdbms=postgres_11&fiddle=8113ce4fd19d

Gunakan presisi ganda di kolom rata-rata

-- 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;

Silakan periksa dari url https://dbfiddle.uk/?rdbms=postgres_11&fiddle=c70fe828008b


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan:sintaks input tidak valid untuk bilangan bulat:

  2. Bagaimana cara memeriksa apakah skema publik PostgreSQL ada?

  3. Postgres mengubah urutan secara manual

  4. Indeks gabungan dengan tiga kunci, apa yang terjadi jika saya meminta melewatkan yang tengah?

  5. Kebocoran memori di server postgresql setelah memutakhirkan ke Rails 4