这是我的返回数据结构的简单示例:
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
。如果该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
我做错了什么?如何应用反向逻辑将反向问题值计算为正确值?