Postgresql

如何在 postgreSQL 中根據小時數對時間戳進行分類

  • August 5, 2021

我正在嘗試使用到達列類別按小時對時間戳進行分類,例如

$$ ‘00.00 - 06.00’, ‘06.00 - 10.00’, ‘10.00 - 14.00’, ‘14.00 - 18.00’, ‘18.00 - 00.00’ $$)。我對這種善意的幫助很陌生。 桌子看起來像

該表包含從 00.00 到 23.00 的所有持續時間,此處僅顯示範例。

請幫我做類別並添加它們。

您可以建構開始/結束時間列表,並通過以下方式與組一起進行左連接:

類似的東西:

with times (begin_time, end_time) as (
 values 
    (time '00:00', time '06:00'),
    (time '06:00', time '10:00'),
    (time '10:00', time '14:00'),
    (time '14:00', time '18:00'),
    (time '18:00', time '24:00')
)
select tm.begin_time, tm.end_time, count(*)
from times tm
 left join the_table t 
        on t.arrival::time >= tm.begin_time
       and t.arrival::time < tm.end_time
group by tm.begin_time, tm.end_time
order by 1,2;        

引用自:https://dba.stackexchange.com/questions/297629