SQL實(shí)現(xiàn)相鄰兩行數(shù)據(jù)的加減乘除操作
SQL實(shí)現(xiàn)表里數(shù)據(jù)按一定順序排序后,按某幾個(gè)字段分組后相鄰兩行數(shù)據(jù)實(shí)現(xiàn)加減乘除運(yùn)算。
思路:
1:先把表數(shù)據(jù)分組排序后打上序號(hào)標(biāo)簽
2:根據(jù)需求把標(biāo)簽字段加/減一
上代碼:
select distinct a.phone,from_unixtime(cast(floor(a.ts/1000) as bigint),'yyyyMMdd HH:mm:ss'),cha from table a join ( select a.phone,a.ts,abs(a.ts-b.ts)/1000 cha from (select phone,ts,row_number() over(partition by phone order by ts ) rank from table) a left join ( select phone,ts,rank-1 as rank from (select phone,ts,row_number() over(partition by phone order by ts ) rank from table) a ) b on a.phone = b.phone and a.rank = b.rank ) b on a.phone = b.phone and a.ts = b.ts where a.phone is not null and a.phone<>'';
表數(shù)據(jù)如圖:

第一列為phone,第二列為時(shí)間ts,要求算出相同phone的每?jī)蓷l相鄰數(shù)據(jù)所花費(fèi)的時(shí)間
結(jié)果如圖:

第三列的單位是秒
補(bǔ)充知識(shí):SQL實(shí)現(xiàn)當(dāng)前行等于前面兩行數(shù)據(jù)之和
sql實(shí)現(xiàn)類似斐波那契數(shù)列的功能,即當(dāng)前數(shù)據(jù)等于前面兩個(gè)數(shù)據(jù)之和,詳看本文例子
原表:

sql語(yǔ)句(此處要熟悉JION ON的用法)

結(jié)果

以上這篇SQL實(shí)現(xiàn)相鄰兩行數(shù)據(jù)的加減乘除操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL中g(shù)roup_concat函數(shù)深入理解
本文通過(guò)實(shí)例介紹了MySQL中的group_concat函數(shù)的使用方法,需要的朋友可以適當(dāng)參考下2012-11-11
mysql視圖之創(chuàng)建視圖(CREATE VIEW)和使用限制實(shí)例詳解
這篇文章主要介紹了mysql視圖之創(chuàng)建視圖(CREATE VIEW)和使用限制,結(jié)合實(shí)例形式詳細(xì)分析了mysql視圖創(chuàng)建于使用相關(guān)原理與操作注意事項(xiàng),需要的朋友可以參考下2019-12-12
MySQL數(shù)據(jù)庫(kù)常用操作和技巧(DBA必備知識(shí))
MySQL數(shù)據(jù)庫(kù)可以說(shuō)是DBA們最常見和常用的數(shù)據(jù)庫(kù)之一,為了方便大家使用,老MySQL DBA總結(jié)了MySQL數(shù)據(jù)庫(kù)最常見和最常使用的一些經(jīng)驗(yàn)和技巧,與分享大家!2011-03-03
Navicat連接MySQL時(shí)出現(xiàn)的連接失敗問(wèn)題及解決
這篇文章主要介紹了Navicat連接MySQL時(shí)出現(xiàn)的連接失敗問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
mysql 5.7.16 安裝配置方法圖文教程(ubuntu 16.04)
這篇文章主要為大家分享了ubuntu 16.04下mysql 5.7.16 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01

