列 B および/または列 C の 2 つの列のいずれかに検索値を含むテーブルがあります。列 A に基づいて、選択した検索値 (x など) が何回出現するかを示す要約を作成したいと考えています。人ごとにどちらかの列。両方の列の合計を数えたい。
+--------+------+----+
| name | B | C |
+--------+------+----+
| john | x | z |
| john | x | x |
| john | y | x |
| peter | x | z |
| peter | x | z |
| amanda | x | x |
| amanda | x | x |
| amanda | x | x |
| amanda | x | y |
| amanda | x | y |
+--------+-----------+
上記の例では、私の検索値が x であると仮定すると、列 B および/または列 C の各人物に対して x が何回出現するかを数えたいと考えています。また、総計を生成し、次の出力を生成したいと考えています。
Name B C
john 2 2
peter 2 0
amanda 5 3
total 9 5
次のように、列ごとに個別に実行できます。
SELECT name, COUNT(*) as count FROM table
WHERE A = 'x'
GROUP BY name
ORDER BY count DESC";
SELECT name, COUNT(*) as count FROM table
WHERE B = 'x'
GROUP BY name
ORDER BY count DESC";
次に、それぞれの出力に対して個別のフェッチを実行してそれらを結合することをループできますが、2 つの列に対して 1 つの mysql ステートメントでチェックとカウントを行う方法があるかどうか知りたいですか?