PostgreSQL 在表中跟踪投票?
我有一个带有简单的向上/向下投票列的表,我最初将其创建为布尔值。 true
表示赞成,false
表示反对。但是,我不确定如何使用聚合函数来实现这种查询结果。例如,5 个 true
行和 2 个 false
应该等于 +3 票。
我想我需要将该列更改为带有+1和-1的smallint。这是正确的吗?有没有更好的方法来查询这样的东西?
I have a table with a simple up/down vote column which I originally created as a boolean. true
is a vote up, false
is a vote down. However, I'm not sure how to use aggregate functions to achieve this kind of query result. For example, 5 true
rows and 2 false
should equal a vote of +3.
I'm thinking that I need to change the column to a smallint with +1 and -1. Is this correct? Is there a better way to query something like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
无需更改数据类型,只需使用 CASE 将其转换为 -1 和 1,然后对表达式求和:
要正确处理 NULL 值,请使用以下代码
No need to change the datatype, simply use a CASE to convert it to -1 and 1, then sum over the expression:
To properly deal with NULL values, use the following