sql >> データベース >  >> RDS >> Mysql

Count(*)がゼロの場合はNULLを返します

    まず、GROUP BYがありません school_nameでグループ化するクエリの下部にある句 :

    SELECT count(student_name) AS total_student, school_name
    FROM student
        LEFT JOIN school_info ON school_info.school_id = student.school_id
    WHERE student.status = '0'
    GROUP BY school_name
    

    次に、total_student =0の行を単純に表示したくない場合は、MySQLHAVING句を使用できます。

    SELECT count(student_name) AS total_student, school_name
    FROM student
        LEFT JOIN school_info ON school_info.school_id = student.school_id
    WHERE student.status = '0'
    GROUP BY school_name
    HAVING count(student_name) > 0
    

    または、LEFT JOINを変更することもできます INNER JOINへ この場合、同じことを達成します。

    最後に、代わりに0をnullに置き換えたいが行が残っている場合は、selectステートメントを更新して合計を次のようにすることができます。

    SELECT IF(COUNT(student_name) = 0, NULL, COUNT(student_name)) AS total_student, school_name
    


    1. 自分で素晴らしいリストを作成するか、ノートブックとしてGitHubを作成する

    2. 無効な変換がエラーコード:17132を要求したのはなぜですか?

    3. フィルター処理されたインデックスと強制パラメーター化(redux)

    4. mysqlでクライアントIPアドレスを取得します