Oracle 按時間段分組統計

2021-06-05 16:22:07 字數 2197 閱讀 2905

想要按時間段分組查詢,首先要了解level,connect by,oracle時間的加減. 

關於level這裡不多說,我只寫出乙個查詢語句:

[sql]view plain

copy

---level 是乙個偽例

select

level

from

dual 

connect

bylevel

<=10  

---結果:

1    

2  3  

4  5  

6  7  

8  9  

10  

關於connect by可以看 

oracle時間的加減看看試一下以下sql語句就會知道:

[sql]view plain

copy

select

sysdate -1 

from

dual  

----結果減一天,也就24小時

select

sysdate-(1/2) 

from

dual  

-----結果減去半天,也就12小時

select

sysdate-(1/24) 

from

dual  

-----結果減去1 小時

select

sysdate-((1/24)/12) 

from

dual   

----結果減去5分鐘

select

sydate-(

level

-1) 

from

dual 

connect

bylevel

<=10  

---結果是10間隔1天的時間

下面是本次例子:

[sql]view plain

copy

select

dt, 

count

(satisfy_degree) 

asnum 

from

t_demo  i ,  

(select

sysdate - (

level

-1) * 2 dt  

from

dual 

connect

bylevel

<= 10) d  

where

i.satisfy_degree=

'satisfy_1'

andi.insert_timeand

i.insert_time> d.dt-2  

group

byd.dt    

例子中的sysdate - (level-1) * 2得到的是乙個間隔是2天的時間 

group by d.dt  也就是兩天的時間間隔分組查詢

自己實現例子:

create table a_hy_locate1

(mobile_no          varchar2(32),

locate_type        number(4),

area_no            varchar2(32),

created_time       date,

area_name          varchar2(512),

);select (sysdate-13)-(level-1)/4 from dual connect by level<=34  --從第一條時間記錄開始(sysdate-13)為表中的最早的日期,「34」出現的分組數(一天按每六個小時分組 就應該為4)

一下是按照每6個小時分組   

select mobile_no,area_name,max(created_time ),dt, count(*) as num from a_hy_locate1  i ,

(select (sysdate-13)-(level-1)/4  dt

from dual connect by level <= 34) d

where i.locate_type = 1 and

i.created_timed.dt-1/4

group by mobile_no,area_name,d.dt

Spring Jpa 按時間段查詢

專案中有需求要按照名稱模糊查詢和時間段查詢資料,可能只有名稱沒有時間,也可能只有時間沒有名稱,也可能這幾個引數同時匹配,所以要多條件動態查詢。jpaspecificationexecutor 介面提供很多條件查詢方法 public inte ce jpaspecificationexecutor 比...

sql server 按時間段查詢

在寫按時間段查詢的sql語句的時候 一般我們會這麼寫查詢條件 where date 2010 01 01 and date 2010 10 1 但是在實執行sql時些語句會轉換成這樣 where date 2010 01 01 0 00 00 and date 2010 10 1 0 00 00 再...

mysql 按時間段統計(年,季度,月,天,時)

按年彙總,統計 select sum mymoney as totalmoney,count as sheets from mytable group by date format col,y 按月彙總,統計 select sum mymoney as totalmoney,count as she...