少なくとも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 疑似クラス関数とは何ですか?

推薦する

MySQL 演算子の具体的な使用法 (and、or、in、not)

目次1. はじめに2. 本文2.1 および演算子2.2 または演算子2.3 オペレーター2.4 no...

Mysql のデッドロックの表示とデッドロックの除去の詳細な説明

序文しばらく前にMysqlのデッドロック問題に遭遇したので、解決しました。問題の説明: Mysql ...

CSSプリコンパイル言語とその違いの詳細な説明

1. 何ですか マークアップ言語として、CSSは比較的シンプルな構文とユーザーに対する要件が低いが、...

マウスを傾けた状態でのフリップナビゲーションの問題に関する研究

この記事では、マウス フリップナビゲーションの制作についてまだ疑問を持っている友人の役に立つことを期...

CentOS 8 カスタム ディレクトリ インストール nginx (チュートリアルの詳細)

1. ツールとライブラリをインストールする# PCRE は、Perl 互換の正規表現ライブラリを含...

レスポンシブWebデザイン学習(3) - モバイルデバイスでのWebページのパフォーマンスを向上させる方法

序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...

サーバーの購入と初期構築方法

しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...

iframeを指すaタグのターゲットの名前とIDの違い

コードをコピーコードは次のとおりです。 <iframe id="myFrameId&...

複数クリックを防ぐVueの実践

通常、クリック イベントは、メッセージ リマインダーのさまざまな状況に分割されます。これらが処理され...

Webリクエストと処理のTomcatソースコード分析

目次序文1. エンドポイント2. 接続ハンドラ3. コヨーテ4. コンテナ責任チェーンパターン序文T...

Vueでショッピングカートのすべての機能を実装する簡単な方法

主な機能は次のとおりです。製品情報を追加する製品情報を変更する単一の製品を削除する複数の製品を削除す...

HTML テーブル マークアップ チュートリアル (43): テーブル ヘッダーの VALIGN 属性

垂直方向では、ヘッダーの配置を上、中央、下に設定できます。基本的な構文構文Top は上、Middle...

Reactにおける不変値の説明

目次不変の値とは何ですか?不変の値を使用するのはなぜですか? Reactのパフォーマンス最適化は不変...

角丸四角形の HTML+CSS 実装コード

退屈していたので、突然角丸四角形の実装を思いつきました。しかし、私たちはこの話題についてあまりにも長...

Vueはドラッグ可能なツリー構造図を実装します

目次Vue 再帰コンポーネントドラッグイベント最近、Vue を使用して、ドラッグ可能なツリー構造図と...