句を使用すると、having
実際にはそれらのレコードが失われます。having
したがって、句を使用することはできません。それとは別に、OR
sを使用すると、どの条件が。になるかはわかりませんtrue
。
したがって、使用する必要があるのは、グループ化されたすべての値を保持する派生テーブルです。それができたら、そのテーブルをクエリして、それぞれのカウントを取得します。ただし、このソリューションでは、3行ではなく3列が提供されます。簡単なものを選びましょう:
SELECT
SUM(condition_one) condition_one,
SUM(condition_two) condition_two,
SUM(condition_three) condition_three
FROM (
SELECT * FROM t
GROUP BY j
) final
これcondition_one
は実際にはなどの条件ですage = 23
が、MySQLの条件は0
forfalse
と1
forを返すため、true
実際に条件を設定できSUM
ます。
UNION
さて、それらを行にしたい場合は、それぞれの値を個別に設定する必要があるため、少し複雑になります。
SELECT 'condition_one: ' Condition, SUM(condition_one) ConditionCount FROM (
SELECT * FROM t GROUP BY j
) s1
UNION ALL
SELECT 'condition_two: ', SUM(condition_two) FROM (
SELECT * FROM t GROUP BY j
) s2
UNION ALL
SELECT 'condition_three: ', SUM(condition_three) FROM (
SELECT * FROM t GROUP BY j
) s3
または少なくとも、それは私が今考えることができる最良の方法です。お役に立てれば!