ビジネスロジックミニプログラムのアクティビティページへのリンクを、テキストメッセージでリンクを送信する(チャネルはsms1、sms2、sms3として記録されます)、またはWeChatミニプログラムのQRコードをポスターに掲載する(チャネルはqrcode1、qrcode2、qrcode3として記録されます)など、さまざまなチャネルを通じて公開します。オフラインメンバーは、QRコードをスキャンしてミニプログラムの指定されたアクティビティページに入ることもできます。または、他のメンバーが共有したミニプログラムリンクを介してミニプログラムに入ることもできます(チャネルはshareとして記録されます)。この記事では、これらの異なる入力方法を総称して異なるチャネルと呼び、これがここで言及するチャネル フィールドです。さまざまなチャネルからアクティビティ ページに入ると、ページ訪問記録が生成されます。 page_view テーブルにカウントされます。 会員がミニプログラムの指定アクティビティページに入り、ページ上で一連の操作を実行すると、ポイントやクーポンの獲得など、対応するフィードバックが届きます。このステップは参加と呼ばれます。このデータは activity_record テーブルに記録されます。 さて、オペレーション担当の女性はデータレポートを求めました。イベントに参加した各メンバーは、どの時間にどのチャネルを通じてイベントに参加しましたか? データテーブル構造
クエリロジック各メンバーは 1 つのアクティビティにしか参加できないため、アクティビティ中にポイントを獲得したり、クーポンを受け取ったりできるのは 1 回だけなど、各メンバーは最大で 1 つの activity_record レコードのみを生成します。 ただし、page_view テーブルの記録方法は異なります。メンバーは、SMS 経由でリンクを受け取ったり、イベントの QR コードをスキャンしたり、イベント リンクを友人に共有してもらったりした可能性があります。これにより、このメンバーに対して複数のページ アクセス レコードが生成されます (つまり、page_view に複数のデータが生成されます)。 考えてみてください。メンバーがイベントに参加するには、まず特定のチャネルを通じてイベント ページにアクセスする必要があります。つまり、view_time の逆順に並べられた複数の page_view データがある場合、activity_record の join_time よりも小さく最も近い view_time が常に存在し、次の page_view の view_time は activity_record の join_time よりも大きくなります。 SQL スクリプトc.member_id、c.view_time、.channel を ( から選択 選択 メンバーID、 SUBSTRING_INDEX( GROUP_CONCAT( view_time ORDER BY view_time DESC ), ',', 1 ) AS view_time, SUBSTRING_INDEX( GROUP_CONCAT( チャネル ORDER BY チャネル DESC ), ',', 1 ) AS チャネル から page_view a LEFT JOIN activity_record b a.member_id = b.member_id の場合 ここで、a.view_time < b.participate_time グループ化 メンバーID) c; スクリプトの説明
これで、MySQL テーブル結合クエリのグループ化と重複排除の実装例についての記事は終了です。MySQL テーブル結合クエリのグループ化と重複排除の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
現在、新しいアプリプロジェクトを開発中です。私にとっても初めてのアプリ開発です。チームで調査と検討を...
この記事ではMySQL 8.0.24バージョンのインストールと設定方法を記録し、皆さんと共有しますM...
CentOS7 64でのMySQL5.6.40のインストール手順1) 以前にインストールしたMySQ...
rm コマンドrm コマンドは、ファイルを削除するときによく使用されるコマンドです。ファイルまたはデ...
目次1. ノード、ツリー、仮想DOM 2. 仮想DOM 2.1 データオブジェクトの詳細2.2 制約...
現在このような問題が発生しています 私の状況は、QT が動かなくなってしまったため、仮想マシンを再起...
目次1. SQLコマンドを含むSQLスクリプトファイルを作成する2. SQLスクリプトファイルを実行...
要約すれば: 1. データベースの設計とテーブルの作成時にパフォーマンスを考慮する2. SQLの記述...
1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...
目次MySQL の current_timestamp の落とし穴エラーを報告する私の解決策mysq...
3ウェイハンドシェイクフェーズクライアントSYNパケットの再試行回数sysctl -w net.ip...
1. プロジェクトwarが保存されているディレクトリを入力しますDockerfileを編集する vi...
CLion のプロセス全体を最初から説明します。CLion は、JetBrains がリリースした新...
目次手動バックアップタイマーバックアップ手動バックアップ1) cmd コンソール: mysqldum...
日常業務では、スペースのないファイルに遭遇することがよくあります。これにより、削除操作がはるかに簡単...