在postgreSQL中查找单行的列间差异

时间:2014-10-28 18:38:18

标签: sql postgresql

我的数据库设置如下

CustomerNumber  Bill_Apr   Bill_Mar    Bill_Feb    Bill_Jan  

我需要创建一个每月账单差异的新列。

如果我不能这样做,我是否需要重组数据库以将多个客户编号与每个月的帐单作为不同的行?我更愿意设置我可以跨列计算的地方。

1 个答案:

答案 0 :(得分:1)

我建议您将表重组为每个客户每月1行。根据您目前的结构,明年1月会发生什么?你会覆盖这个价值吗?下个月您没有专栏会发生什么?您是否添加了一列,然后更新了计算列?

我会推荐以下结构:

CREATE TABLE Bills
(CustomerNumber int,
MonthYear varchar(30),
Bill double,
)

然后,您可以编写一个看起来像

的视图或查询
SELECT CustomerNumber, VARIANCE(Bill) as BillVariance
FROM Bills
GROUP BY CustomerNumber

这将返回每个客户的所有账单的统计差异。