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“