gpt4 book ai didi

PostgreSQL 跟踪表中的投票?

转载 作者:行者123 更新时间:2023-11-29 14:07:54 25 4
gpt4 key购买 nike

我有一个表,其中包含一个简单的赞成/反对投票列,我最初将其创建为 bool 值。 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

关于PostgreSQL 跟踪表中的投票?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com