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

date_trunc 5-minutowy interwał w PostgreSQL

SELECT date_trunc('hour', date1) AS hour_stump
     , (extract(minute FROM date1)::int / 5) AS min5_slot
     , count(*)
FROM   table1
GROUP  BY 1, 2
ORDER  BY 1, 2;

Możesz GROUP BY dwie kolumny:sygnatura czasowa skrócona do godziny i 5-minutowy przedział czasu.

Przykład tworzy sloty 0 - 11 . Dodaj 1 jeśli wolisz 1 - 12 .
Oddaję wynik extract() na liczbę całkowitą, więc dzielenie / 5 obcina cyfry ułamkowe. Wynik:
minuta 0 - 4 -> slot 0
minuta 5 - 9 -> slot 1
itd.

To zapytanie zwraca tylko wartości dla tych 5-minutowych przedziałów, w których znaleziono wartości. Jeśli chcesz mieć wartość dla każdego slot lub jeśli chcesz sumę bieżącą ponad 5-minutowe przedziały czasu, rozważ powiązaną odpowiedź:

  • PostgreSQL:liczenie wierszy dla zapytania „po minucie”


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz tabelę przestawną za pomocą PostgreSQL

  2. postgresql generuje sekwencję bez przerw

  3. Jak używać operatora % z rozszerzenia pg_trgm?

  4. Zapisać wspólne zapytanie jako kolumnę?

  5. Moje ulubione rozszerzenia PostgreSQL — część druga