用sql检查数据是否连续

来源:互联网 发布:实惠好用的护肤品知乎 编辑:程序博客网 时间:2024/04/29 21:45

数据格式:每个ID每天有一条数据,每天可能有新ID数据,也可能有ID不再有数据

实现要求:检查每个ID的数据在某时间段内是否连续

解决思路:查出每个ID出现的最早日期和最晚日期,日期相减,如果与数据数一致,则说明连续,否则说明不连续。示例SQL如下:

select mindate,maxdate,difday - cnt cnt,COUNT(*) subcntfrom (select id,COUNT(*) cnt, MAX(d_date) maxdate,MIN(d_date) mindate,DATEDIFF(DAY,min(d_date),max(d_date))+1 difdayfrom T_datawhere d_date >='$check_date' and d_date<getdate()group by id) awhere cnt != difday and mindate<>maxdategroup by cnt,mindate,maxdate,difdayorder by mindate,maxdate

PS:数据库为sqlserver

0 0
原创粉丝点击