考えるとテーブルCollegeMajors
SQL Serverの:いくつかの条件
| Id | Major |
|----|-------------|
| 1 | Accounting |
| 2 | Math |
| 3 | Engineering |
とEnrolledStudents
| Id | CollegeMajorId | Name | HasGraduated |
|----|----------------|-----------------|--------------|
| 1 | 1 | Grace Smith | 1 |
| 2 | 1 | Tony Fabio | 0 |
| 3 | 1 | Michael Ross | 1 |
| 4 | 3 | Fletcher Thomas | 1 |
| 5 | 2 | Dwayne Johnson | 0 |
は私が
Select
CollegeMajors.Major,
Count(select number of students who have graduated) AS TotalGraduated,
Count(select number of students who have not graduated) AS TotalNotGraduated
From
CollegeMajors
Inner Join
EnrolledStudents On EnrolledStudents.CollegeMajorId = CollegeMajors.Id
のようなクエリをしたい、関連テーブルの列のカウントを()を取得
と私はこれらの結果を期待しています
| Major | TotalGraduated | TotalNotGraduated |
|-------------|----------------|-------------------|
| Accounting | 2 | 1 |
| Math | 0 | 1 |
| Engineering | 1 | 0 |
したがって、質問はどのような質問が上記を達成するためにCOUNT
の内部に入るのですか?
:
そして卒業していないもののためにゼロに1を変更私は実際にあなたのクエリを実行しようとしなかった、私はちょうどCASE文を使用して条件でカウントを計算する方法であなたのコードを再掲載しました。あなたはメインのクエリでgroup byを持つ必要があり、count文だけを私の答えとみなすことができます。 –
はい、私はあなたに同意します、私はちょうど彼の質問に基づいてカウントセクションを投稿した、後で私はちょうど彼の他の部分を確認せずにクエリ全体を更新しました。あなたの提案によると、私は今、グループでクエリを更新しました。 –