公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL連續(xù)數(shù)據(jù)的查詢,查詢最大連續(xù)簽到的時(shí)長、查詢連續(xù)人流量超過2w的日期。

freeflydom
2024年8月2日 15:15 本文熱度 2160
場景

場景一:需要查詢最大連續(xù)簽到的時(shí)長,一般用于toc的場景中
場景二:查詢連續(xù)人流量超過2w的日期,某游樂場的業(yè)務(wù)管理系統(tǒng)

思路

這種題目我一般常用的思路就是動(dòng)轉(zhuǎn)靜,連續(xù)轉(zhuǎn)不變。
比如場景二,需要找連續(xù)的日期,那么就要再找一個(gè)連續(xù)的變量,讓兩個(gè)變量進(jìn)行相減或者其他操作,得到不變的數(shù)據(jù),然后通過分組或者分區(qū)查詢即可。

例題

體育館人流量表

 

visit_date 是該表中具有唯一值的列。
每日人流量信息被記錄在這三列信息中:序號(hào) (id)、日期 (visit_date)、 人流量 (people)
每天只有一行記錄,id與日期遞增,日期不一定是連續(xù)遞增。
編寫SQL找出每天的人數(shù)大于或等于 100 且 日期 連續(xù)的三行或更多行記錄。返回按 visit_date 升序排列 的結(jié)果表

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ù),并且按照
visit_date升序排序。

實(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,id也是遞增的,我們做完再講。

SELECT t1.id,t1.visit_date,t1.people FROM (SELECT t.*, COUNT(1) OVER(partition by DATEADD(DAY, t.rowId * -1,t.visit_date)) AS daysCount FROM(SELECT *,ROW_NUMBER() Over (ORDER BY id) as rowId FROM Stadium where people >= 100) t ) t1 WHERE t1.daysCount > =3

步驟
1.篩選人流量大于等于100的數(shù)據(jù),并且通過分區(qū)函數(shù)增加行號(hào)
2.用日期減去行號(hào)得到一個(gè)日期,相等則表示日期連續(xù),再次通過分區(qū)函數(shù)基于得到的日期獲取分區(qū)數(shù)量
3.篩選分區(qū)數(shù)量大于等于3的就是連續(xù)三天或者三天以上人流量大于等于100的數(shù)據(jù)
4.作為子查詢結(jié)果處理得到結(jié)果。

結(jié)果

為什么不用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)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 成人动漫免费看一区二区三区 | av无码一区二区三区鸳鸯影院 | 国产麻无矿码直接观看 | 911精品国产91久久久久 | 国产偷伦视频免费观看 | 国产av巨作情欲放纵无码 | 国产夜色精品视频免费hd中字 | 国产成人精品久久久久大片 | 3d新金瓶玥菲无删减完整版 | 国产aⅴ精品一区二区三区 国产aⅴ精品一区二区三区久 | 国产福利一区二区麻豆 | 粉嫩无码一区二区三区 | 2025在线视频国产第一页 | 成人无码区免费aⅴ片在线观看 | 国产女同玩sm调教在线观看 | 爆爽久久久一区二区又大又黄又嫩 | 国产成人精品无码片三区四区 | 国产亚洲一区二区手机在线观看 | 国产精品精品系列在线观看 | 不卡国产在线看h | 国产三级韩国三级日产三级 | 黑人一区二区三区中文字幕 | 国产亚洲欧美日韩综合综合二区 | 国产色婷婷五月精品综合在线 | 成人午夜电影免费完整在线看 | 成人三级精品视频在线观看 | 国产精品成人国产乱一区 | 精品少妇爆乳无码aⅴ区蜜臀av | 国产日韩av免费无码一区二区三区 | 91精品在线观看视频 | 国产精品亚韩精品无码a在线 | 丰满人妻一区二区三区 | av无码中文一区二区三区四区 | 成人a级毛片无码免费 | 99国产婷婷综合在线视频 | 国产三级在线播放网址 | 国产av麻豆一区 | 国内自拍天天操天天干 | 国产粉嫩精品喷潮在线观看 | 果冻传媒麻豆系列视频 | 国产一级片内射视频蜜臀在线 |