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

少なくとも7日間連続して注文を行ったユーザーに対する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)

アイデア

テーブルを ID と時間でグループ化し、時間からランク rnk を減算します。時間が連続している場合、減算結果は等しくなります。

 select *,date-rankrnk from (select *,row_number() over(partition by id order by date) rankfrom orde) a;

次に、ID、rnk、countでグループ化します。

 id、rnk、count(*) ok から選択 
(select *,date-rankrnk from (select *,row_number() over(partition by id order by date) rankfrom orde) a) b group by id,rnk;

次の表が得られます。

最後に、count 項目 ok>=7 をフィルタリングします。

直接フィルタリングすることもできます:

 id,rnkを選択 
(select *,date-rankrnk from (select *,row_number() over(partition by id order by date) rankfrom orde) a) b group by id,rnk having count(*)>=7;

上記は、7日間以上連続して注文を行ったユーザー向けに編集者が紹介したSQLクエリです。お役に立てれば幸いです。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • 継続的にログインするユーザーに対するSQLクエリ
  • 7日以上ログインしているユーザーを実装するSQLクエリメソッド
  • ユーザーの連続ログイン日数を調べるSQLクエリステートメント
  • SQL Server で連続日付レコードのコードをクエリする方法

<<:  トピックページデザインの 5 つの基本スキル (Alibaba UED Shanmu)

>>:  新しい CSS :where および :is 疑似クラス関数とは何ですか?

推薦する

React で複数の setStates が何回呼び出されるのでしょうか?

目次1. 2 つの setState を何回呼び出すのですか? 2. 2 つの setState の...

Web面接でよくある質問:リフローとリペイントの原理と違い

目次ブラウザのレンダリングメカニズムリフローと再塗装リフロー逆流を引き起こす行為:再描画再描画を引き...

2つのボールが交差する粘着効果を実現するCSSサンプルコード

これは純粋に CSS のみを使用して作成されたエフェクトです。簡単に言うと、このエフェクトは画像処理...

CSS3 弾性拡張ボックスの詳細な説明

使用フレキシブル ボックスはフロントエンドの Web ページ レイアウトで重要な役割を果たしますが、...

MySQLデータベースを別のマシンに移行する方法の詳細な説明

1. まず、移行サーバー上のデータ ファイルを見つけます。MySQL 5.7 とデフォルトのインスト...

MySQL 実行ステータスの表示と分析

MySQL のパフォーマンスに問題があると思われる場合は、通常、まずshow processlist...

HTML テーブル マークアップ チュートリアル (16): タイトルの水平方向の配置属性 ALIGN

デフォルトでは、表のタイトルは水平方向に中央揃えされます。ALIGN 属性を使用して、タイトル テキ...

HTMLエンコードによる文字化け問題について

今日、3年生から質問がありました。彼が書いた HTML コードを開くと、文字化けした文字が表示されま...

JavaScript の重要なブレークポイント デバッグ手法の概要 (推奨)

目次デバッガーを使用する理由は何ですか? Chromeデバッガーの基本的な使い方VS Code によ...

EChartsマウスイベント処理方法の詳細な説明

イベントとは、クリック、マウスオーバー、ページの読み込み後にトリガーされる読み込みイベントなど、ユー...

おすすめの無料英語手書きフォント20選

Jellyka Beesアンティーク手書き [ank]* ジェリーカ・カティカップケーキ LHF ジ...

IDEA を使用して Web プロジェクトを作成し、Tomcat に公開する方法

目次ウェブ開発1. Web開発の概要Tomcatのインストールと設定Tomcatをインストールする2...

HTMLテーブルではテーブルの外側の境界線のみが表示されます

質問があります。Dreamweaver で、3 行 1 列のログイン フォーム (ログイン、登録、パ...

ウェブページを作るときに注意すべき5つのポイント

1. 色合わせの問題<br />Web ページには 3 色以上使用しないでください。そう...

Reactで例外を適切にキャプチャする方法

目次序文エラー境界エラー境界を超えてトライ/キャッチwindow.onerror、エラーイベント未処...