これは非常に簡単であるように感じますが、解決策を見つけることはできません。 私は、次の表があるとします。クエリは、このケースでは、12になる必要がありますので、複数の列と行にわたるSQLカウントの特定の値
|--------||---||---||---||---||---||---||---|
|Company ||q1 ||q2 ||q3 ||q4 ||q5 ||q6 ||q7 |
|--------||---||---||---||---||---||---||---|
|abc ||1 ||2 ||1 ||3 ||2 ||2 ||1 |
|abc ||2 ||2 ||1 ||2 ||3 ||1 ||1 |
|abc ||1 ||1 ||3 ||3 ||1 ||2 ||2 |
|abc ||1 ||2 ||1 ||3 ||0 ||1 ||3 |
私は倍の「1」の数をカウントしたいことは、私はそれを「ハードコーディング」しようとした、テーブルに表示されます。次のクエリのように。しかし、それは結果として1行を含むので、この場合は4になります。どのようにして '1'の回数がカウントされ、結果的に12のカウントになりますか?
SELECT COUNT(*)
FROM table
WHERE Company = 'abc'
AND (
q1 = '1'
OR q2 = '1'
OR q3 = '1'
OR q4 = '1'
OR q5 = '1'
OR q6 = '1'
OR q7 = '1'
)
'AND '1' IN(Q1、Q2、Q3、Q4、Q5、Q6、Q7)' – Alex
いや、その心臓部にも – Merin
COUNT 4の結果、あなたのアプローチはしなかった理由と'count()'は行を数えるので、複数の列にまたがる1の集合は1回だけカウントされます。 – shawnt00