sql >> Databáze >  >> RDS >> PostgreSQL

date_trunc 5minutový interval v 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;

Můžete GROUP BY dva sloupce:časové razítko zkrácené na hodinu a 5minutový úsek.

Příklad vytvoří sloty 0 - 11 . Přidejte 1 pokud dáváte přednost 1 - 12 .
Přenesl jsem výsledek extract() na celé číslo, tedy dělení / 5 zkracuje zlomkové číslice. Výsledek:
minuta 0 - 4 -> úsek 0
minuta 5 - 9 -> úsek 1
atd.

Tento dotaz vrací pouze hodnoty pro ty 5minutové bloky, kde jsou hodnoty nalezeny. Pokud chcete hodnotu pro každý slot nebo chcete-li průběžný součet více než 5minutové úseky, zvažte tuto související odpověď:

  • PostgreSQL:průběžný počet řádků pro dotaz „po minutách“


  1. Jak funguje funkce SQL Server SOUNDEX()

  2. Oracle spoušť po vložení nebo odstranění

  3. Chyba související s only_full_group_by při provádění dotazu v MySql

  4. SQL Server 2008 - řazení podle řetězců s číselným číslem