计算Postgres中的相对错误

时间:2018-04-23 19:32:02

标签: postgresql

有一种简单的方法来计算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

1 个答案:

答案 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_rowfalse_row。这可以使用各种聚合函数来完成,例如SUM

当您拥有true_rowfalse_row时,只需在外部查询中进行计算。