欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL查詢至少連續(xù)n天登錄的用戶

 更新時間:2022年01月01日 11:21:08   作者:?LUC?  
這篇文章介紹了SQL查詢至少連續(xù)n天登錄用戶的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

以連續(xù)3天為例,使用工具:MySQL。

1.創(chuàng)建SQL表:

create table if not exists orde(id varchar(10),date datetime,orders varchar(10));
insert into orde values('1' , '2019/1/1',10 );
insert into orde values('1' , '2019/1/2',109 );
insert into orde values('1' , '2019/1/3',150 );
insert into orde values('1' , '2019/1/4',99);
insert into orde values('1' , '2019/1/5',145);
insert into orde values('1' , '2019/1/6',1455);
insert into orde values('1' , '2019/1/7',199);
insert into orde values('1' , '2019/1/8',188 );
insert into orde values('4' , '2019/1/1',10 );
insert into orde values('2' , '2019/1/2',109 );
insert into orde values('3' , '2019/1/3',150 );
insert into orde values('4' , '2019/1/4',99);
insert into orde values('5' , '2019/1/5',145);
insert into orde values('6' , '2019/1/6',1455);
insert into orde values('7' , '2019/1/7',199);
insert into orde values('8' , '2019/1/8',188 );
insert into orde values('9' , '2019/1/1',10 );
insert into orde values('9' , '2019/1/2',109 );
insert into orde values('9' , '2019/1/3',150 );
insert into orde values('9' , '2019/1/4',99);
insert into orde values('9' , '2019/1/6',145);
insert into orde values('9' , '2019/1/9',1455);
insert into orde values('9' , '2019/1/10',199);
insert into orde values('9' , '2019/1/13',188 );

查看數據表:

2.使用row_number() over()  排序函數計算每個id的排名,SQL如下:

select *,row_number() over(partition by id order by date ) 'rank'
from orde
where orders is not NULL;

查看數據表:

 3.將date日期字段減去rank排名字段,SQL如下:

select *,DATE_SUB(a.date,interval a.rank day) 'date_sub'
from(
select *,row_number() over(partition by id order by date ) 'rank'
from orde
where orders is not NULL
) a;

查看數據:

4.根據id和date分組并計算分組后的數量(count)、計算最早登錄和最晚登錄的時間,SQL如下:

select b.id,min(date) 'start_time',max(date) 'end_time',count(*) 'date_count'
from(
select *,DATE_SUB(a.date,interval a.rank day) 'date_sub'
from(
select *,row_number() over(partition by id order by date ) 'rank'
from orde
where orders is not NULL
) a
) b
group by b.date_sub,id
having count(*) >= 3
;

 查看數據:

參考資料:

SQL查詢至少連續(xù)七天下單的用戶

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • MySQL模式 Strict Mode知識點詳解

    MySQL模式 Strict Mode知識點詳解

    在本篇文章里小編給各位整理的是一篇關于MySQL模式 Strict Mode知識點詳解內容,需要的朋友們參考下。
    2020-03-03
  • MySQL中大對象的多版本并發(fā)控制詳解

    MySQL中大對象的多版本并發(fā)控制詳解

    這篇文章主要給大家介紹了關于MySQL中大對象的多版本并發(fā)控制的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mysql具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • MySQL DELETE語法使用詳細解析

    MySQL DELETE語法使用詳細解析

    此文章主要講述的是MySQL DELETE語法的詳細解析,以及一些在實際操作中值得我們大家注意的相關事項的描述,以下就是正文的主要內容
    2013-03-03
  • mysql5.7.22 下載過程圖解

    mysql5.7.22 下載過程圖解

    這篇文章主要介紹了mysql5.7.22 下載過程圖解,非常不錯,具有參考價借鑒價值,需要的朋友可以參考下
    2018-05-05
  • Centos下Mysql安裝圖文教程

    Centos下Mysql安裝圖文教程

    這篇文章主要為大家詳細介紹了 Centos下Mysql安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Mysql判斷表字段或索引是否存在

    Mysql判斷表字段或索引是否存在

    這篇文章主要介紹了Mysql判斷表字段或索引是否存在的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • 查看 MySQL 已經運行多長時間的方法

    查看 MySQL 已經運行多長時間的方法

    查看MySQL啟動時間以及運行了多長時間的方法有利用show與updtime或在linux中直接使用grep mysql 相關參數來查看,下面我們一起來看看
    2014-01-01
  • SQL中MIN和MAX及常見函數教程示例

    SQL中MIN和MAX及常見函數教程示例

    這篇文章主要為大家介紹了SQL中MIN和MAX及常見函數教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 淺析MySQL顯式類型轉換

    淺析MySQL顯式類型轉換

    這篇文章主要介紹了MySQL顯式類型轉換的基礎知識,通過實例給出了分析結果,一起學習下吧。
    2017-12-12
  • MySQL安裝與創(chuàng)建用戶操作(新手入門指南)

    MySQL安裝與創(chuàng)建用戶操作(新手入門指南)

    這篇文章主要為大家介紹了MySQL安裝與創(chuàng)建用戶的使用講解是非常適合小白新手的入門學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05

最新評論