1.按照日期排序,使用rank()函式得到排位值
select userid,date
rank() over(partition by userid order by date) rk
from tablea;
2.用日期減去排位值rk得到新的日期,記作new_date.new_date相同則為連續
舉個栗子:
date
2017/1/2
2017/1/3
2017/1/4
2017/1/6
2017/1/8
2017/1/9
//求出rank值
select sour_date,
rank() over(order by sour_date) rk
from tablea;
//rank()函式是求排名的函式
date rk
2017/1/2 1
2017/1/3 2
2017/1/4 3
2017/1/6 4
2017/1/8 5
2017/1/9 6
select sour_date,rk,date_sub(sour_date,rk)new_date from tablea;
//date_sub()函式就是第乙個引數(日期)減去第二個引數(天數)得到新的日期
//date_sub(2017/1/2,1)就是2023年1月2號減1天----->2017/1/1
sour_date rk new_date
2017/1/2 1 2017/1/1
2017/1/3 2 2017/1/1
2017/1/4 3 2017/1/1
2017/1/6 4 2017/1/2
2017/1/8 5 2017/1/3
2017/1/9 6 2017/1/3
//可以看到new_date相同的日期是連續的
//new_date為2017/1/1的日期是2023年的1月2號、3號、4號就是連續的幾天
mysql查詢資料是否連續增長
記錄一次比較查詢,需求是比較內容是否一次比一次高,用來作為標籤依據 大致問題如下 簡化 班級中有若干人,若干次考試。需要查詢某人在考試時成績越來越好 分數是每次都有增長 思路 1。使用group by 分組,然後在查詢內容使用 group concat 成績字段 order by 時間或者自增長id...
mysql查詢日期補全(連續)方法
select od.date,od.ordercount from select date format order time,y m d date,count ordercount from order where order time 開始時間 and order time 結束時間 group...
017 mySQL多表查詢(連續查詢) 分類
一 概念 笛卡爾積 有兩個表a b,取這兩個表所有有可能組成情況。笛卡爾積會產生很多無用資料,需要消除無用資料。二 分類 1 內連線 2 外連線 3 交叉連線 子查詢 說明 sql分92版本和99版本,92版本值包含 1 內連線 而99版本包含上面所有,且99版本的 1 內連線 於92版本有所不同 ...