ホームページ >データベース >mysql チュートリアル >複数の SELECT ステートメントを組み合わせてタスクの完了と遅延を分析するにはどうすればよいですか?
効率的なデータ分析: 複数の SELECT ステートメントの結合
データベース クエリでは、多くの場合、複数のソースからのデータを組み合わせたり、複数の変換を適用したりする必要があります。 複数の SELECT
ステートメントの出力を結合すると、データを操作して貴重な洞察を得る強力な方法が提供されます。
各レコードが期限 (PALT) やタスクの経過時間 (開始からの日数) を含むタスクを表すタスク データベースを考えてみましょう。タスクの経過時間が PALT を超えると、タスクは遅れます。 私たちの目標は、各人のタスクの合計数と期限を過ぎたタスクの数を示す概要表を生成することです。
これは、2 つの個別の SELECT
ステートメントを使用して実現できます。
<code class="language-sql">SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks;</code>
このクエリは、各人 (ks
で識別される) の合計タスクをカウントします。
<code class="language-sql">SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks;</code>
このクエリは、各人の遅延タスクの数をカウントします。
これらを組み合わせるには、LEFT JOIN
:
<code class="language-sql">SELECT t1.ks, t1.'# Tasks', COALESCE(t2.'# Late', 0) AS '# Late' FROM (SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1 LEFT JOIN (SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks) t2 ON t1.ks = t2.ks;</code>
これは、ks
列に基づいて結果を結合します。 COALESCE
は、人に遅れているタスクがない場合を処理し、NULL
を 0 に置き換えます。
最後のテーブルには、ks
(個人 ID)、# Tasks
(タスクの合計)、および # Late
(遅延タスクの数、またはない場合は 0) が表示されます。これにより、個々のワークロードと期限を過ぎたタスクの割合を徹底的に分析できます。
以上が複数の SELECT ステートメントを組み合わせてタスクの完了と遅延を分析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。