Oracle地鐵OD全網15分鐘淨客流統計SQL

2021-08-16 03:30:51 字數 1769 閱讀 8343

原始資料:

/*15分鐘客流統計*/

with tb as(

--使用正規表示式拼接格式化時間17:17:52為2018/1/1 17:52:00 date型別

select t.*,

to_date(regexp_substr(t.進站時間, '[^:]+', 1, 2) || ':' ||regexp_substr(t.進站時間, '[^:]+', 1, 3) || ':00', 'hh24:mi:ss') as 進站時間戳,

to_date(regexp_substr(t.出站時間, '[^:]+', 1, 2) || ':' ||regexp_substr(t.出站時間, '[^:]+', 1, 3) || ':00', 'hh24:mi:ss') as 出站時間戳

from   cq_dt_in_ext_table1 t

),tb1 as(

--對刷卡進站時間每15分鐘分組

select gp, count(*) as in_cnt

from   (select t.進站時間戳,

trunc(t.進站時間戳, 'mi') - mod(to_char(進站時間戳, 'mi'), 15) / 24 / 60 as gp,

t.卡號,

t.進站編碼

from   tb t)

group  by gp

),tb2 as

--對刷卡出站時間每15分鐘分組

(select gp, count(*) as out_cnt

from   (select t.出站時間戳,trunc(t.出站時間戳, 'mi') -mod(to_char(出站時間戳, 'mi'), 15) / 24 / 60 as gp,

t.卡號,

t.出站編碼

from   tb t)

group  by gp

),tb3 as(

--構造5-24點每15分鐘時間碼表

select to_date(to_char(to_date('05:00:00', 'hh24:mi:ss') +level * 15 / 24 / 60,'hh24:mi:ss'),'hh24:mi:ss') as consult_time

from dual

connect by level <= 76

),tb4 as(

select t3.consult_time,

coalesce(t1.in_cnt, 0) in_cnt,

coalesce(t2.out_cnt, 0) out_cnt,

'全網' as in_line

from tb3 t3

left join tb1 t1 on t3.consult_time = t1.gp

left join tb2 t2 on t3.consult_time = t2.gp

)select t.consult_time 當前時間,

sum(t.in_cnt) over(order by consult_time) - sum(t.out_cnt) over(order by consult_time) 淨客流,

t.in_line 線路

from tb4 t;

查詢結果:

15分鐘了解Phoenix

以下部分翻譯自 phoenix為hbase穿上一層sql的外衣。所以你可以使用標準的jdbc api來建立表 插入資料 查詢hbase中的資料,而不是使用常規的hbase客戶端api。不會。跟原生的hbase客戶端相比,phoenix效能一樣好甚至更好,主要通過以下方式 除此之外,我們還做了一些工作...

15分鐘了解TiDB

2019年07月13日 22 21 49 d guco 閱讀數 77341 由於目前的專案把mysql換成了tidb,所以特意來了解下tidb。其實也不能說換,由於tidb和mysql幾乎完全相容,所以我們的程式沒有任何改動就完成了資料庫從mysql到tidb的轉換,tidb 是乙個分布式 news...

15分鐘引發的思考

這不是15 分鐘的會議,這是乙個由 15分鐘引發的思考。會場一開頭,便由我的乙個 8點推遲到8點 15的理由 嚴於律己 寬以待人,照顧特殊情況。盪起一片漣漪。在提高班裡有一種學習的形式叫做討論學習,在這裡是最平常也是最有效的一種進步方式。大家各抒己見,從中鍛鍊自己的思維,辯證的過程中糾正自己。在每一...