Group Byによる異なる2つのCountが取れない
解決済
20pt
1件
従業員テーブル(employee)で社員番号(id)ごとのカウント件数と、削除フラグ(del)が立っている件数をそれぞれ取得したいと考えています
これを取得するためにMySQLで、以下のクエリーを実行しています
これを取得するためにMySQLで、以下のクエリーを実行しています
SELECT COUNT(s.`id`) , COUNT(COALESCE(e.`del`,'0') ) FROM employee AS e LEFT OUTER JOIN `salary` s ON e.`id` = s.`id` GROUP BY e.`id`
しかしこのクエリーだと、社員番号(id)とのカウント件数と削除フラグ(del)が同じ数値となってしまい、目的の削除フラグの件数が取得できません
よろしくお願いします
php
mysql
ベストアンサーに選ばれた回答
多分ですけど、Countの使い方を誤ってる気がしますね
Count関数は、その行数を取得する目的で使用します
ですから、削除フラグのトータル件数を取得したいのであればSUM()を使う必要があります
Count関数は、その行数を取得する目的で使用します
ですから、削除フラグのトータル件数を取得したいのであればSUM()を使う必要があります
SELECT COUNT(s.`id`) , SUM(COALESCE(e.`del`,'0') ) # COUNT → SUM FROM employee AS e LEFT OUTER JOIN `salary` s ON e.`id` = s.`id` GROUP BY e.`id`
回答の編集
この質問はすでに終了しているため変更できません
未解決の質問
配列をforeachで取り出すときにエラーになる 50pt |
htaccessとindex.php(index.html)はどちらが先に読み込まれるのか 10pt |
PHPでシングルクォーテーションとダブルクォーテーションの違いは何? 50pt |