ホームページ > データベース > mysql チュートリアル > 2 つの SELECT クエリを組み合わせて各個人のタスクと遅延タスクを数えるにはどうすればよいですか?

2 つの SELECT クエリを組み合わせて各個人のタスクと遅延タスクを数えるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-08 22:32:43
オリジナル
705 人が閲覧しました

How to Combine Two SELECT Queries to Count Tasks and Late Tasks for Each Individual?

包括的なタスク分析のための SELECT クエリの結合

データベース クエリでは、全体像を把握するために複数のソースからのデータを組み合わせる必要があることがよくあります。 これには、複数の SELECT ステートメントの結果を結合することが含まれます。これは、多くのプログラミング コンテキストで重要なテクニックです。

期限と個人の割り当てが設定されたタスク データベースを含むシナリオを考えてみましょう。 目的は、各個人、タスクの合計数、期限を過ぎたタスクの数を示すレポートを生成することです。

これは、2 つの個別の SELECT クエリを使用して実現できます。1 つは個人ごとのタスクをカウントするもの、もう 1 つは期限を過ぎたタスク (Age が事前定義された期限 PALT を超えている場合) をカウントするものです。 この情報を統合するために、LEFT JOIN が使用されます。 これにより、最初のクエリのすべての個人が確実に含まれ、2 番目のクエリの期限超過タスク数が一致するようになります。結合は ks 列 (個人識別子) に基づいて行われます。

結合されたクエリは次のとおりです:

<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、合計タスク数 (# Tasks)、および期限を過ぎたタスクの数 (# Late) をリストしたテーブルです。 COALESCE は、個人に期限を過ぎたタスクがない場合を処理し、0 値を # Late に割り当てます。 これにより、包括的かつ正確な概要が提供されます。

以上が2 つの SELECT クエリを組み合わせて各個人のタスクと遅延タスクを数えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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