少なくともn日間連続してログインしているユーザーに対するSQLクエリ

少なくともn日間連続してログインしているユーザーに対するSQLクエリ

MySQL ツールを使用して、3 日間連続する例を見てみましょう。

1. SQL テーブルを作成します。

テーブルが存在しない場合は作成します order(id varchar(10),date datetime,orders varchar(10));
順序値に挿入します('1'、'2019/1/1'、10);
順序値に挿入します('1'、'2019/1/2'、109);
順序値に挿入します('1'、'2019/1/3'、150);
順序値に挿入します('1'、'2019/1/4'、99)。
順序値に挿入します('1'、'2019/1/5'、145);
順序値に挿入します('1'、'2019/1/6'、1455);
順序値に挿入します('1'、'2019/1/7'、199)。
順序値に挿入します('1'、'2019/1/8'、188);
順序値に挿入します('4'、'2019/1/1'、10);
順序値に挿入します('2'、'2019/1/2'、109);
順序値に挿入します('3'、'2019/1/3'、150);
順序値に挿入します('4'、'2019/1/4'、99)。
順序値に挿入します('5'、'2019/1/5'、145);
順序値に挿入します('6'、'2019/1/6'、1455);
順序値に挿入します('7'、'2019/1/7'、199);
順序値に挿入します('8'、'2019/1/8'、188);
順序値に挿入します('9'、'2019/1/1'、10);
順序値に挿入します('9'、'2019/1/2'、109);
順序値に挿入します('9'、'2019/1/3'、150);
順序値に挿入します('9'、'2019/1/4'、99)。
順序値に挿入します('9'、'2019/1/6'、145);
順序値に挿入します('9'、'2019/1/9'、1455);
順序値に挿入します('9'、'2019/1/10'、199)。
順序値に挿入します('9'、'2019/1/13'、188);

データシートを見る:

2. row_number() over() ソート関数を使用して、各 ID の順位を計算します。SQL は次のとおりです。

 select *,row_number() over(partition by id order by date ) 'rank'
順序から
orders が NULL ではない場合;

データシートを表示:

3. 日付フィールドからランクフィールドを減算します。SQL は次のようになります。

 *、DATE_SUB(a.date、interval a.rank day) 'date_sub' を選択
から(
select *,row_number() over(partition by id order by date ) 'rank'
順序から
注文がNULLではない場合
)a;

データを表示:

4. ID と日付でグループ化し、グループ化された項目の数 (カウント) を計算し、最も早いログイン時間と最も遅いログイン時間を計算します。SQL は次のとおりです。

 b.id、min(date) 'start_time'、max(date) 'end_time'、count(*) 'date_count' を選択
から(
*、DATE_SUB(a.date、interval a.rank day) 'date_sub' を選択
から(
select *,row_number() over(partition by id order by date ) 'rank'
順序から
注文がNULLではない場合
)
)b
b.date_sub、id でグループ化
count(*) >= 3 である
;

データを表示:

参考文献:

少なくとも7日間連続して注文を行ったユーザーに対するSQLクエリ

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL で 2 つの日付間の連続ログイン日数の最大数を照会する方法
  • MySQLは2つの日付間の日数、月数、年数を計算します
  • mysqlは連続した日付と変数の割り当てを生成します
  • MySQLで連続ログイン日数を計算する方法

<<:  フロントエンド開発に必要な共通ツール機能のまとめ

>>:  純粋なCSS3で実装されたネオンライト効果

推薦する

WindowsにOpenSSHをインストールし、SSHキーを生成してLinuxサーバーにログインします。

SSH の正式名称は Secure SHell です。 SSH を使用すると、送信されるすべてのデ...

Linux でのマルチスレッドプログラミング例の分析

1 はじめにスレッド技術は 1960 年代にすでに提案されていましたが、マルチスレッドがオペレーティ...

Docker ベースの Etcd 分散デプロイメントの方法と手順

1. 環境整備1.1 基本環境NTP設定: 省略 #時間の一貫性を確保するためにNTPサービスを設定...

MySQLでデータテーブルを作成するときにエンジンMyISAM/InnoDBを設定する

mysql を構成するときに、構成ファイル内のデフォルトのストレージ エンジンを InnoDB に設...

jsを使用して簡単な抽選機能を実現する

この記事では、参考までに、簡単な抽選機能を実装するためのjsの具体的なコードを共有します。具体的な内...

MySQL5.7 シングルインスタンス自動起動サービスの設定プロセス

1.MySQLのバージョン [root@clq システム]# mysql -v MySQL モニター...

Apache Log4j2 が核レベルの脆弱性と迅速な修正を報告

Apache Log4j2 が核レベルの脆弱性を報告し、スタックリーダーの友人たちは大騒ぎになりまし...

Linux で見つけるためのフレンドリーな代替手段 (fd コマンド)

fd コマンドは、Linux ファイル システムを検索するためのシンプルで簡単な方法を提供します。...

LinuxシステムにISOファイルをインストールする方法

Linux システムで iso ファイルをインストールするにはどうすればいいですか?インストール手順...

int(3)とint(10)の値の範囲はmysqlで同じですか?

目次質問:答え:現実:知識ポイント結論は:要約する質問: MySQLフィールド、unsigned i...

MySQL フラッシュバック ツール binlog2sql の詳細なインストールと設定のチュートリアル

概要binlog2sql は、Python で開発されたオープンソースの MySQL Binlog ...

node.jsのコアモジュールとは

目次グローバルオブジェクトグローバルオブジェクトとグローバル変数プロセスコンソール一般的なツールユー...

MySQL マルチバージョン同時実行制御 MVCC の実装

目次MVCCとはMVCC 実装MVCC はファントム リードを解決しますか? MVCCとはMVCC ...

nginx keepaliveの具体的な使い方

http1.1 プロトコルのデフォルトのリクエスト ヘッダーでは、図に示すように、デフォルトで ke...

ラジオボタンとチェックボックス効果の純粋な CSS 実装例

ラジオボタンとチェックボックスラジオボタンとチェックボックスの効果を実現するための純粋な CSSラジ...