PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Tabela przestawna dla danych na godzinę

SELECT * FROM crosstab(
       'SELECT cola, EXTRACT(HOUR from colb) AS h, count(*) AS ct
        FROM   fooo
        GROUP  BY 1, 2
        ORDER  BY 1, 2'

       ,'SELECT g::float8 FROM generate_series(0,23) g'
   ) AS ct (cola text
      , h00 int, h01 int, h02 int, h03 int, h04 int, h05 int
      , h06 int, h07 int, h08 int, h09 int, h10 int, h11 int
      , h12 int, h13 int, h14 int, h15 int, h16 int, h17 int
      , h18 int, h19 int, h20 int, h21 int, h22 int, h23 int);

Poza tym:
Zapomniałeś godziny 0 / 24.
Używaj nazw kolumn z wiodącymi znakami, aby uniknąć podwójnego cudzysłowu.

Szczegóły:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ograniczenie Postgresa dla unikalnego zakresu dat

  2. Jak transponować kolumny i wiersze w PostgreSQL (tzn. jak przełączać wiersze i kolumny)?

  3. jsonb LIKE zapytanie dotyczące obiektów zagnieżdżonych w tablicy

  4. Przegląd narzędzi diagramów baz danych dostępnych dla PostgreSQL

  5. Pula połączeń Postgres — wielu użytkowników