国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

利用SQL和Python分別實現(xiàn)人流量查詢,考驗邏輯思維的時候到了

數(shù)據(jù)庫 SQL Server 后端
本來這篇是要寫Python的可視化的,但無意中發(fā)現(xiàn)了一道題目,發(fā)現(xiàn)通過這道題可以很好地鍛煉一下邏輯思維能力,而且也可以復(fù)習(xí)下SQL和Python的編寫,于是便決定先寫這篇了。

本來這篇是要寫Python的可視化的,但無意中發(fā)現(xiàn)了一道題目,發(fā)現(xiàn)通過這道題可以很好地鍛煉一下邏輯思維能力,而且也可以復(fù)習(xí)下SQL和Python的編寫,于是便決定先寫這篇了。

通過這道題我們會發(fā)現(xiàn),其實在分析工作中,最重要的能力是邏輯思維,程序只不過是實現(xiàn)邏輯的工具,沒有邏輯思維能力,程序就是無本之源。而且,雖然實現(xiàn)一個結(jié)果會有多種邏輯,但好的邏輯會讓我們的程序更具簡潔性、可觀性、高效性。

下面是結(jié)合自身理解所總結(jié)的兩類實現(xiàn)邏輯,我相信肯定還會有更優(yōu)秀的邏輯在某些大牛的腦中!

案例介紹

案例來源于LeetCode,這樣的需求在時間序列數(shù)據(jù)中還是較為常見的。

某市體育館每日人流量信息被記錄在stadium表的三列信息中:序號 (id)、日期 (visit_date)、 人流量 (people),找出至少連續(xù)三行人流量不少于100的記錄。

 

利用SQL和Python分別實現(xiàn)人流量查詢,考驗邏輯思維的時候到了

思路分析

最簡單的思路肯定是對stadium表進行三次笛卡爾積連接,但這種方式在數(shù)據(jù)量大時不可取,而且也不具備泛化性(譬如需求改成至少連續(xù)十行)。網(wǎng)上也流傳著阿里的編程規(guī)范——禁止三表以上的連接。

總之,這種思路不是我們該采取的,我們需要尋找其它思路。

(1)構(gòu)建等差數(shù)列

 

利用SQL和Python分別實現(xiàn)人流量查詢,考驗邏輯思維的時候到了

從上圖中我們能發(fā)現(xiàn)一個規(guī)律,滿足條件的數(shù)據(jù)區(qū)域在原始表和結(jié)果表中的行編號均是等差數(shù)列,兩個等差數(shù)列的差值是固定的。譬如,數(shù)列A1和B1的差值均為1;數(shù)列A2和B2的差值均為2。

只要我們保證每塊區(qū)域等差數(shù)列的差值各不相等,那我們就可以通過篩選差值出現(xiàn)的次數(shù)來篩選滿足條件的區(qū)域。例如,差值2出現(xiàn)了4次,滿足條件,那該差值對應(yīng)的記錄就是我們需要的數(shù)據(jù)。

構(gòu)建差值的方式除了通過行編號外,也還有其它方式,大家可以想一想。

(2)數(shù)據(jù)切片

 

利用SQL和Python分別實現(xiàn)人流量查詢,考驗邏輯思維的時候到了

從圖中可看出,if_true是輔助列,表示是否滿足條件,1為True,0為False。我們要選擇滿足條件的區(qū)域,可通過用0對該列進行切片,得到的是全為1的不同長度的小數(shù)列,根據(jù)每個小數(shù)列的長度來篩選滿足條件的區(qū)域。

在圖中就是得到了長度為a和b的數(shù)列,通過計算數(shù)列的長度來找出滿足條件的區(qū)域。

程序?qū)崿F(xiàn)

上節(jié)我們選擇了兩種思路,其中Python兩種思路都可以實現(xiàn),SQL可實現(xiàn)第一種思路。本節(jié)用SQL實現(xiàn)第一種思路,用Python實現(xiàn)第二種思路。

(1)SQL

  1. select id,visit_date,people 
  2. from 
  3. (select t2.*,count(1) over(partition by rn2) rn3 
  4. from  
  5. (selectt1.*,rn1 - row_number() over(order by visit_date) rn2 
  6. from 
  7. (select *,row_number() over() as rn1 
  8. from stadium order by visit_date)t1 #t1表對日期升序排列后生成行編號 
  9. where people>=100) t2 #t2表篩選人數(shù)不低于100的數(shù)據(jù),并用原行編號減去新生成的行編號得到差值 
  10. where 1=1) t3 #t3表統(tǒng)計每類差值出現(xiàn)的次數(shù) 
  11. where rn3>2 #篩選次數(shù)大于2的數(shù)據(jù)即為所需要的數(shù)據(jù) 

因為實際中表中的ID幾乎都不是連續(xù)的數(shù)字,所以為了保證泛化性就先生成了行編號,這樣就不用依賴于ID了。

除此之外也還可以通過用戶變量等方式實現(xiàn),大家可以試著想一想。

(2)Python

  1. import pandas as pd 
  2. dt=pd.DataFrame({"id":range(1,9),  
  3.                  "visit_date":pd.date_range(start="2017-01-01",periods=8),  
  4.                  "people":[10,109,150,99,145,1455,199,188]}) 
  5. dt["col1"]=dt["people"].apply(lambda x : 1 if x>=100 else 0) 
  6. #生成人數(shù)是否不低于100的新列 
  7. dt['counter'] = (dt["col1"]==0).cumsum() 
  8. #按照col1列是否為0計算累計和,標記每個連續(xù)區(qū)域 
  9. dt = dt[dt["col1"] !=0] 
  10. #剔除人數(shù)低于100的記錄 
  11. gb=dt.groupby("counter")["id"].count() 
  12. # 統(tǒng)計各標記值的次數(shù) 
  13. result=dt[dt["counter"].isin(gb[gb>2].index)] 
  14. #篩選滿足條件的數(shù)據(jù) 

這里有一點需要注意,如果直接將col1列轉(zhuǎn)為字符串按0進行切片的話,雖然可以求出滿足條件的區(qū)域數(shù)量和長度,但很難再尋找到具體的區(qū)域。

  1. split_col1="".join([str(i) for i in dt["col1"]]).split("0"

原本是按照的這種思路,但發(fā)現(xiàn)尋找長度符合字符串在原列表中的索引時會比較麻煩,尤其是當需要查找多個索引值時。

但此種思路還是非常重要,因為在只是計算連續(xù)區(qū)域的最大值時會非常簡單。

結(jié)語

以上只是兩種簡單的邏輯,其實還有一些邏輯方法,但其本質(zhì)大都差不多,本文就不一一列舉了。至于是否還有更高效的邏輯方法,就等著大牛們來指導(dǎo)吧。

如果有完整看完的朋友就會發(fā)現(xiàn),一個簡單的例子就可以有多種實現(xiàn)方法,在將每種方法都自己寫一遍的過程中,就是對已有知識的一種梳理和復(fù)習(xí)。

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2009-06-22 13:48:00

Java編程思想面向?qū)ο?/a>

2013-05-27 15:57:36

邏輯思維

2021-09-22 10:18:58

自然語言神經(jīng)網(wǎng)絡(luò)人工智能

2014-11-17 17:37:13

2021-08-13 16:11:08

機器人AI人工智能

2014-06-30 13:34:57

2016-04-09 17:37:57

銳捷網(wǎng)絡(luò)商業(yè)智能系統(tǒng)無線

2020-02-06 16:38:53

辦公電腦互聯(lián)網(wǎng)

2009-04-29 10:00:25

SQL邏輯查詢優(yōu)化

2012-05-08 10:02:44

2021-09-08 05:49:25

機器人巡邏人工智能

2013-04-25 14:44:28

飛魚星無線路由器Wi-Fi

2025-01-14 13:52:56

2020-10-25 19:12:01

人臉識別AI人工智能

2020-03-18 09:23:24

Python數(shù)據(jù)SQL

2025-04-21 16:39:09

自動化機器人大型語言模型LLM

2019-12-13 15:58:45

戴爾

2011-03-17 13:54:42

查詢參數(shù)SQL語句利用率

2021-01-14 08:23:15

LeetCode變量

2010-07-19 10:55:07

SQL Server
點贊
收藏

51CTO技術(shù)棧公眾號

性欧美1819sex性高清| 激情在线视频播放| 另类调教123区| 国产精品视频xxxx| 亚洲天堂av资源在线观看| 亚洲男人的天堂在线播放| 国产91在线视频蝌蚪| 欧美午夜片欧美片在线观看| 国产69精品久久久久孕妇| 国产精品三级视频| 日韩欧美一区二| 成人免费毛片app| 日韩激情视频一区二区| 国产真实乱子伦精品视频| 视频一区二区三区在线观看| 欧美午夜精品免费| 中文字幕中文字幕99| 国产午夜久久av| 一本到不卡免费一区二区| 久久久久久久久久久久久国产| 怡红院在线播放| 亚洲精品第一| 日韩一中文字幕| 国产日韩视频在线播放| 天天久久夜夜| 成色在线视频| 成人免费视频国产在线观看| 国产精品美乳在线观看| 绯色av一区| 亚洲成人最新网站| 亚洲第一视频网站| 日韩毛片在线一区二区毛片| 久久综合色综合88| 自拍视频一区二区三区| 日韩黄色小视频| 欧美一区二区三区精美影视| 日韩成人精品在线| 欧美精品在线第一页| 成人免费观看在线观看| 欧美一区二区黄| 亚洲精品视频99| 国产精品久久看| 中文字幕一区二区三区域| 国产欧美精品一区二区三区四区 | 亚洲国产一二三精品无码| 国产一区二区三区四区五区美女| 日韩亚洲欧美视频| 国产精品欧美久久久久无广告| 国产在线传媒| 日韩欧美综合一区| **在线精品| 91精品国产91久久久久| 久久久久久久久丰满| 日本一区高清不卡| 91麻豆精东视频| 四虎在线视频| 亚洲天堂av高清| 亚洲国产欧美日韩在线观看第一区| 国产伦精品一区二区三区精品视频| 欧美精品大片| 日韩中文字幕在线不卡| 日韩一区在线看| 美女羞羞视频在线观看| 欧美成人精品xxx| 国色天香一区二区| 国产免费黄色小视频| 色哟哟在线观看一区二区三区| 亚洲国产福利| 成人啪啪免费看| 不卡一区二区中文字幕| 免费人成黄页在线观看忧物| 日韩精品在线观看网站| 精品欧美久久| 成年人三级视频| 欧美三级欧美成人高清www| 欧美国产亚洲精品久久久8v| 国产欧美一区二区三区米奇| 亚洲精品免费网站| 激情av综合网| 在线免费激情视频| 久久精品国产综合| 亚洲第一偷拍| 国产精品69久久久| 欧美三级韩国三级日本三斤| 欧美一区二区三区婷婷| 欧美h视频在线| 久久久久久久久久看片| av成人影院在线| 亚洲成成品网站| 在线视频91p| 91麻豆精品国产91久久久使用方法 | 91精品国产一区二区三密臀| 欧美一级片免费看| 精品少妇一区| 欧美大片免费播放| 成人免费a**址| 国产午夜福利100集发布| 欧美一区三区四区| 精品大片一区二区| 天堂社区在线视频| 一区二区成人精品| 久久福利资源站| 成人黄视频在线观看| 高清日韩一区| 欧美一区二区成人6969| 91成人精品视频| 性xxxx丰满孕妇xxxx另类| 蜜月aⅴ免费一区二区三区| 成人黄色一级视频| 三上悠亚一区二区| 久久av高潮av| 欧美成人在线影院| 亚洲国产精品久久人人爱蜜臀| 成人在线超碰| 超碰在线播放91| 国产午夜精品全部视频在线播放 | 在线观看免费高清完整| 色琪琪原网站亚洲香蕉| 久久久久久99| 亚洲人午夜精品天堂一二香蕉| 偷拍视频一区二区三区| 水蜜桃一区二区三区| 欧美性受极品xxxx喷水| 亚洲人成网77777色在线播放| 国产l精品国产亚洲区久久| 欧美一区免费视频| 精品国产一区二区精华| 国产伦理精品不卡| 国产极品嫩模在线观看91精品| 欧美激情视频免费看| 欧美男插女视频| 精品久久久在线观看| 三级欧美韩日大片在线看| www成人在线视频| 男人日女人bb视频| 99久久精品免费看国产四区| 在线视频中文字幕一区二区| 亚洲美洲欧洲综合国产一区| 日本韩国在线视频爽| 日韩亚洲一区在线播放| 亚洲天堂av网| 成人欧美一区二区三区| 久久一级电影| 成人超碰在线| 成年人视频在线网站| 亚洲综合首页| 亚洲人成在线观看网站高清| 好看的日韩av电影| 欧美一级做a| 热这里只有精品| 亚洲一区二区视频在线观看| 在线精品小视频| 高清亚洲高清| 麻豆系列在线观看| 国产乱码精品一区二区三区亚洲人| 欧美精品一区二区三区久久久| 视频一区免费在线观看| 自拍在线观看| 性欧美1819| 国产精品日日摸夜夜添夜夜av| 色天使色偷偷av一区二区| 久久国产主播| 精品精品国产国产自在线| 午夜精品久久久久久久| 国产欧美日韩精品在线| 91网址在线看| 狠狠色丁香九九婷婷综合五月| 成人一级毛片| 日韩在线伦理| av免费在线观| 国产在线资源| 日韩a在线看| 三上悠亚在线免费观看| 国产免费观看高清视频| 最新不卡av| 中文字幕日韩精品久久| 亚洲精品一区二区三区av| 亚洲va国产va天堂va久久| 国产精品海角社区在线观看| 国产成人精品免费久久久久 | 亚洲调教一区| 97色伦图片97色伦在线电影| 久久久一本精品99久久精品| 久久精品午夜一区二区福利| 久久久久99精品久久久久| 久久精品一区蜜桃臀影院| 亚洲动漫精品| 精品福利久久久| 欧美精品一级| 精品国产乱码久久久久久虫虫漫画 | 久久久久久久久久久av| 国产精品高潮呻吟| 亚洲最好看的视频| 久久av一区二区三区| 日韩经典一区二区| 精品一区二区在线视频| 国产精品自拍三区| 久久久精品国产免大香伊 | www.在线视频| 亚洲国产第一|