您好,登錄后才能下訂單哦!
通過sql語句獲取相鄰時段數據不比通過其它編程語言,因為sql里面沒有for循環,故在實現時需要增加一份副表數據,這里對該方法做一個記錄。
背景:獲取2017年全年平臺用戶進出貴州省的次數(分為進港次數和出港次數)。
處理方式:
1.根據定位數據獲取當年在貴州出現過的用戶
2.獲取這些用戶的全部定位數據,并根據定位時間進行排序
如上,從左到右以此分別為用戶id,定位時間,定位省份id,排序編號,是否定位在貴州
3.這里考慮根據if_loc這個字段來判斷用戶是入港還是出港,但是僅僅依靠這張a表還無法完全實現,因此考慮增加一張b表,b表的數據來自于a表,但兩張表對rn值對應的數據會有一些差別
其中 b.rn_b = a.rn - 1
4.兩張表進行關聯,獲取進港、出港標簽port_flag
select a.bid,a.uploadtime,a.province_id,b.if_loc_b - a.if_loc port_flag
from a
inner join b on (a.bid = b.bid and a.rn = b.rn_b)
當port_flag = 1 時為入港,port_flag = -1 時為出港,port_flag = 0時為港內持續定位。
入港和出港涉及到兩個時段的定位數據,通過這種方式,自然也可以獲取到兩個時段內的其它數據。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。