自定義分組規則
前景
在做數據報表時,需要對某一時間段分組,以1小時爲時間間隔統計各項數據,如9點-10點,10點-11點…,但是現在有種情況,時間有可能不是整點開始,會有半點的情況,9點30,需要按照9點30-10點30,10點30-11點30分組統計
實現
以時間範圍起始時間作爲參照時間,計算與其差值(分)/所需時間間隔(1小時)
得出值作爲分組依據。
例子
select xx,
floor(
floor(
(refDate-to_date('2021-02-05 08:30','yyyy-MM-dd hh24:mi:ss'))
* 24 * 60) / 60
) factor
where refDate >=to_date('2021-02-05 08:30','yyyy-MM-dd hh24:mi:ss')
and refDate <=....
floor:取整用
refDate:每條數據中的日期字段
2021-02-05 08:30:參照時間
factor:算出的分組依據
以上查詢範圍是21:30-23:30,以21.30作爲參照時間,可將時間段劃分爲21.30-22:30,22:30-23:30。。
在此基礎上查詢時間所屬時間段
以上通過 factor/24 含義爲間隔一小時, 可以通過改變這兩個值任意組合時間間隔。