これは、私の戻りデータがどのように構造化されているかの簡単な例です:
id | cat id | value | reverse
1 | 1 | 5 | false
2 | 1 | 5 | false
3 | 2 | 2 | true
4 | 2 | 1 | false
5 | 1 | 3 | true
以下の sql ステートメントでは、列ごとに各value
型グループの数を取得しようとしてvalue
います。列が trueの場合reverse
、スケールを逆にする必要があります。したがって、スケールは次のようになります。
5 = 1
4 = 2
3 = 3
2 = 4
1 = 5
次の SQL ステートメントを試しましたが、カウントに逆のスケールを適用していないようです。逆のフラグをすべて無視しているだけです。
select value, count(
case reverse
WHEN false THEN
CASE value
WHEN '5' THEN '1'
WHEN '4' THEN '2'
WHEN '3' THEN '3'
WHEN '2' THEN '4'
WHEN '1' THEN '5'
END
ELSE value
END
)
from table1
group by value
私が間違っていることは何ですか?逆のロジックを適用して、逆の質問の値を正しい値にカウントするにはどうすればよいですか?