真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle、MySQL、Hive等數(shù)據(jù)庫如何統(tǒng)計連續(xù)相同

在數(shù)據(jù)庫里統(tǒng)計某個字段中相同數(shù)據(jù)直接用Group by就可以了,但如果附加個順序條件后就有點麻煩了,例如,統(tǒng)計每一個玩家的連勝或者連敗情況。 Oracle有窗口分析函數(shù),需要多層嵌套加上高級分析函數(shù)才能實現(xiàn),MySQL、Hive等數(shù)據(jù)庫不如Oracle強(qiáng)大,實現(xiàn)起來就比較費勁了。集算器作為應(yīng)用和數(shù)據(jù)庫的中間計算層,可以用統(tǒng)一的方式,很簡單就能解決此類問題。先看一個簡單的例子,表logs?如下,求num中連續(xù)?出現(xiàn)3次以上的數(shù)字都有哪些?

桐柏網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

+----+-----+

|?id?|?num?|

+----+-----+

|?1??|??1??|

|?2??|??1??|

|?3??|??1??|

|?4??|??2??|

|?5??|??1??|

|?6??|??2??|

|?7??|??2??|

+----+-----+

集算器的代碼是這樣的,


A
1$select id,num from logs
2=A1.group@o(num)
3=A2.select(~.len()>=3).(~.num)

A1:sql取數(shù)

A2:按照相鄰num同值分組

A3:選出至少連續(xù)出現(xiàn)三次相同的num

如果想知道相同連續(xù)值最大有多少條記錄,A3中的表達(dá)式改為=A2.max(~.len())即可。

有些需求不是按順序有相同值,是按順序有相同趨勢,比如,找出連續(xù)虧損達(dá)三月或以上的那些月份的記錄,用集算器很簡單,只是把相鄰數(shù)據(jù)分組規(guī)則從等值條件改為趨勢條件即可。代碼參考如下:


A
1=db.query("select * from 收支表 order by 月份")
2=A1.group@o(收入>支出).select(~.收入<~.支出 && ? ~.len()>=3).conj()

?

考勤記錄合并進(jìn)出狀態(tài)也是類似的情況,在電商、物流和銀行也常遇到統(tǒng)計用戶連續(xù)交易的總額、連續(xù)登陸天數(shù)、連續(xù)登陸開始和結(jié)束時間、間隔天數(shù)等這樣的需求,都可以仿照這些例子很快實現(xiàn)。其實還有很多情況用SQL十分不方便,但用集算器卻很簡單,感興趣可以看看集算器優(yōu)化 SQL 示例匯總 。集算器提供了Jdbc接口,Java可直接調(diào)用,使用非常方便,有關(guān)集算器安裝使用、獲得免費授權(quán)和相關(guān)技術(shù)資料,參見 如何使用集算器。


網(wǎng)頁名稱:Oracle、MySQL、Hive等數(shù)據(jù)庫如何統(tǒng)計連續(xù)相同
本文鏈接:http://weahome.cn/article/jjeepj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部