SQL連續(xù)數(shù)據(jù)的查詢,查詢最大連續(xù)簽到的時(shí)長、查詢連續(xù)人流量超過2w的日期。
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
場景場景一:需要查詢最大連續(xù)簽到的時(shí)長,一般用于toc的場景中 思路這種題目我一般常用的思路就是動(dòng)轉(zhuǎn)靜,連續(xù)轉(zhuǎn)不變。 例題體育館人流量表 ![]() visit_date 是該表中具有唯一值的列。 Create table If Not Exists Stadium (id int, visit_date DATE NULL, people int) Truncate table Stadium insert into Stadium (id, visit_date, people) values ('1', '2017-01-01', 10) insert into Stadium (id, visit_date, people) values ('2', '2017-01-02', 109) insert into Stadium (id, visit_date, people) values ('3', '2017-01-03', 150) insert into Stadium (id, visit_date, people) values ('4', '2017-01-04', 99) insert into Stadium (id, visit_date, people) values ('5', '2017-01-05', 145) insert into Stadium (id, visit_date, people) values ('6', '2017-01-06', 1455) insert into Stadium (id, visit_date, people) values ('7', '2017-01-07', 199) insert into Stadium (id, visit_date, people) values ('8', '2017-01-09', 188) 例題解釋體育館的人流表,要求找出最少三天連續(xù)人流量超過100的數(shù)據(jù),并且按照 實(shí)戰(zhàn)做題目前先回顧下SqlServer中的一個(gè)函數(shù) DATEADD(DAY,2,'2020-03-27');該函數(shù)可以在日期上進(jìn)行加減,并且可以執(zhí)行加減的日期部分,DAY表示天數(shù)增加。 按照思路,日期連續(xù),那么可以生成一列行號(hào),用日期與行號(hào)作差,如果結(jié)果相等則表示連續(xù)。 解題 生成行號(hào)需要自己創(chuàng)造動(dòng)態(tài)列,比如自己添加行號(hào)列 步驟 為什么不用id還是需要自己創(chuàng)造行號(hào)。因?yàn)楹Y選掉人流量不夠的數(shù)據(jù)后,id與時(shí)間的等差結(jié)果還是不會(huì)變,就會(huì)得到錯(cuò)誤的數(shù)據(jù),本身不滿足的數(shù)據(jù)仍舊會(huì)被查詢出來。 轉(zhuǎn)自https://www.cnblogs.com/qwqwQAQ/p/18334689 該文章在 2024/8/2 15:15:42 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |