ホームページ > データベース > mysql チュートリアル > SQL 結合を使用して個人のタスク数と遅延タスク数を結合するにはどうすればよいですか?

SQL 結合を使用して個人のタスク数と遅延タスク数を結合するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-08 22:37:44
オリジナル
879 人が閲覧しました

How to Combine Task and Late Task Counts for Individuals Using SQL Joins?

複数の SQL クエリからのデータの統合

データベース管理では、多くの場合、さまざまなソースまたはテーブルからのデータを統合する必要があります。 一般的な方法は、SQL JOIN 操作を使用して、複数の SELECT ステートメントの結果を結合することです。

この例では、2 つのクエリからのデータを結合する方法を示します。1 つは合計タスクをカウントし、もう 1 つは各個人の期限を過ぎたタスクをカウントします。目的は、各個人のタスク数と期限を過ぎたタスク数を示す表を作成することです。

最初のクエリは、各個人の合計タスク数を計算します。

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

これにより、ks (個人識別子) と Total Tasks を含むテーブルが生成されます。

2 番目のクエリは、各個人の期限を過ぎたタスクをカウントします。

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

これにより、ksOverdue Tasks を含むテーブルが生成されます。

これらの結果をマージするには、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 を 0 に置き換えます。

最後のテーブルには、各個人の ksTotal TasksOverdue Tasks が表示されます。

以上がSQL 結合を使用して個人のタスク数と遅延タスク数を結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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