有一种简单的方法来计算Postgres中的错误,给出一个如下所示的表:
emp
我想要的输出id | (False_row - True_row)/ True_row:
id | bool | score
1 | False | 9
1 | True | 9.6
2 | False | 5
2 | True | 4.7
答案 0 :(得分:1)
SELECT
id,
(false_row - true_row) / true_row
FROM (
SELECT
id,
SUM(CASE WHEN bool THEN score ELSE 0 END) AS true_row,
SUM(CASE WHEN NOT bool THEN score ELSE 0 END) AS false_row
FROM
table_name
GROUP BY
id
) AS sub;
在子查询(sub
)中,选择true_row
和false_row
。这可以使用各种聚合函数来完成,例如SUM
。
当您拥有true_row
和false_row
时,只需在外部查询中进行计算。