1. 問題の再現:各日の合計数を日ごとにカウントします。データのない日がある場合、グループ化によってそれらの日が無視されます。それらの日を 0 で埋めるにはどうすればよいでしょうか?下の図に示すように、10-3 から 10-10 までの 7 日間のデータがカウントされますが、そのうち 8 日目と 10 日目のデータのみがあります。このように、返されるデータは 2 つだけであり、レポートの統計要件を満たしていません。 0で埋められる値はないと予想されます 2. 考え方を変える:連続する日のセットを左テーブルとして使用し、クエリするデータを左結合して、最後にグループ化します。以下に示すように、連続する日テーブル t1 をビジネス データ t2 で左結合し、t1.day でグループ化します。 選択 t1.`日`、 COUNT(t2.user_id) 支払い番号 から (選択 @cdate := DATE_ADD(@cdate, 間隔 - 1 日) 日 から (選択 @cdate := DATE_ADD('20171219', 間隔 + 1 日) から 注文)t0 制限7) t1 左結合 (選択 DATE(a.create_time) 曜日、 ユーザーID から 支払い_支払い ディーラーストアに参加する b ON a.order_no = b.order_no DATE(create_time) <= '20171219' の場合 AND DATE(create_time) > DATE_SUB('20171219', INTERVAL 7 DAY) ) t2 t2日 = t1日 GROUP BY t1.`day`; 2.1 連続日数表選択 @cdate := DATE_ADD(@cdate, 間隔 - 1 日) 日 から (選択 @cdate := DATE_ADD('20171219', 間隔 + 1 日) から 注文)t0 制限7 実行結果は次のとおりです。 SQL分析: 1. 2. 3. 4. 5. LIMIT 7 レコード数を制限します。これで完了です。指定した日付の 7 日前のレコードを取得しました。 2.2 左結合してからグループ化する
つまり、左表に関連付けられた業務データに従って、左表の日付に従ってデータをグループ化し、つまり指定された 7 日間のデータに分割します。レコードがある場合はエントリ数がカウントされ、レコードがない場合は 0 になります。 最終実行結果: 要約する 上記は、その日にデータがない場合、毎日の統計レポートに従ってMySQLに0を入力するために紹介した実装コードです。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: CentOS 6 または CentOS 7 でディスク領域をクリアする方法
>>: Dockerイメージをプルしてバージョンを確認する方法
Linux の優れた点は、マルチユーザー、マルチタスク システムにあります。 Linux では通常、...
この記事では主に基本的なチャットの実装方法を紹介します。今後は絵文字や写真のアップロードなどの機能も...
概要中小規模のプロジェクトでは、特にレポートを作成するときに、結合テーブル クエリが非常に一般的な操...
mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...
遅延読み込みを使用しない 'vue' から Vue をインポートします。 '...
Web サービスは、アプリケーション間の通信に関係しています。SOAP は、Web サービス間の X...
目次1. はじめに: 2. 最初のアイデアはインデックスを構築することです3. 命令P.S. Lik...
上の境界線のみを表示する <table frame=above>下の境界線のみを表示する...
1. Baidu Eslint Ruleプラグインをインストールする npm i -D eslint...
mysql が閉じない場合の解決策:コンピュータのタスクバーを右クリックしてタスクマネージャーを開き...
1. Dockerサーバーへのリモートアクセスを有効にするdocker が配置されているリモート サ...
下図のように、 selectポップアップレイヤーの下部に操作ボタンを配置するのが一般的な設計方法です...
システムをインストールした後、毎回いくつかのソフトウェアを再インストールする必要があります。ソフトウ...
この記事では、カレンダー効果を実現するためのjQueryの具体的なコードを例として紹介します。具体的...
ドキュメントはしばらく前から書いていましたが、アップロードする勇気がありませんでした。サーバーのセキ...