天天看點

mysql 連續日期統計_MySQL高階統計每周連續出現天數

還是昨天的問題,統計每周内問題小區連續出現天數,MySQL可以實作嗎?答案是肯定的,就是過程很曲折。

資料庫查詢語言基本都是針對整列的,不像

excel

是單元格粒度的,要判斷行與行之間的差異比較麻煩。

建表語句如下:

1
           

插入資料

1
           

表是這樣的

1mysql> 
           

現在使用一種算法來判決每周持續出現,用

week()

擷取日期所在周數,使用下圖的邏輯判斷連續出現

mysql 連續日期統計_MySQL高階統計每周連續出現天數
  • 首先擷取目前日期與一個較早的日期的內插補點
  • 計算表中大于等于目前日期的行數
  • 兩個值求和,求和相等則為連續出現,否則為間隔出現

SQL 呼之欲出

1mysql> 
           

得到了

diff

rows

,将兩者相加,然後按照該列分組計數就是持續天數,再加上周數,就是每周持續天數完整代碼如下:

1mysql> 
           

如上,利用

MySQL

擷取了每周連續出現天數,感覺怎麼樣?

mysql 連續日期統計_MySQL高階統計每周連續出現天數

End

mysql 連續日期統計_MySQL高階統計每周連續出現天數

往期精彩:

本号精華合集(二)

精通 SQL 程式設計,你卻隻用來拉資料

偏見的背後,是你想象不到的無知

mysql 連續日期統計_MySQL高階統計每周連續出現天數