ホームページ > データベース > mysql チュートリアル > 複数の SQL SELECT ステートメントを組み合わせてタスクと遅延タスクをカウントする方法

複数の SQL SELECT ステートメントを組み合わせてタスクと遅延タスクをカウントする方法

Mary-Kate Olsen
リリース: 2025-01-08 22:29:44
オリジナル
155 人が閲覧しました

How to Combine Multiple SQL SELECT Statements to Count Tasks and Late Tasks?

複数の SQL SELECT ステートメントの結合: 実践的な例

このガイドでは、複数の SQL SELECT ステートメントの結果を単一の包括的なテーブルに効率的に結合する方法を説明します。 例としてタスク管理データベースを使用します。 各タスク レコードには、期限、期限までの日数 (PALT)、経過時間 (作成からの日数) などの詳細が含まれます。 目標は、各個人のタスクの合計数と期限を過ぎたタスクの数を示すレポートを生成することです。

合計タスクと遅延タスクをカウントするための個々のクエリは次のようになります:

<code class="language-sql">SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks;</code>
ログイン後にコピー
<code class="language-sql">SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks;</code>
ログイン後にコピー

これらの結果をマージするには、LEFT JOIN を使用します。 これにより、期限を過ぎたタスクがない場合でも、合計タスク数に含まれるすべての人が確実に含まれるようになります。

<code class="language-sql">SELECT t1.ks, t1."Total Tasks", COALESCE(t2."Overdue Tasks", 0) AS "Overdue Tasks"
FROM 
    (SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks) t1
LEFT JOIN
    (SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks) t2
ON t1.ks = t2.ks;</code>
ログイン後にコピー

COALESCE 関数は、期限を過ぎたタスクがない場合 (NULL から LEFT JOIN が生成される) を処理します。わかりやすくするために NULL を 0 に置き換えます。 最後のテーブルには、ks (個人 ID)、「合計タスク数」、および「期限を過ぎたタスク」が表示されます。 LEFT JOIN により、期限を過ぎたタスクがあるかどうかに関係なく、すべての個人がリストされるようになります。

以上が複数の SQL SELECT ステートメントを組み合わせてタスクと遅延タスクをカウントする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート