我有一个表格,上面有一个简单的上/下投票列,我最初创建的是一个布尔值.true是一个投票,false是一个投票下来.但是,我不确定如何使用聚合函数来实现这种查询结果.例如,5 true行和2 false应该等于+3的投票.
我想我需要将列更改为带有+1和-1的smallint.它是否正确?有没有更好的方法来查询这样的东西?
无需更改数据类型,只需使用CASE将其转换为-1和1,然后对表达式求和:
SELECT sum(case when vote_column then 1 else -1 end) FROM your_table
要正确处理NULL值,请使用以下命令
SELECT sum(case vote_column
when true then 1
when false then -1
else 0
end)
FROM your_table
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |