Sum OVER Partition By,未给出预期结果

时间:2015-11-03 03:05:05

标签: sql-server sql-server-2014

我有一组数据,显示了儿童合同使用的分钟数"以一天为周期。我需要总计孩子合同消耗的分钟数,以便我们跟踪。

这是我使用的代码。

Select 
    "combined"."id", 
    "combined"."ContractCustomer", 
    "combined"."ContractCustomerChild", 
    "combined"."Minutes",
     SUM( "combined"."Minutes") OVER (PARTITION BY      "combined"."ContractCustomerChild" ORDER BY "combined"."id") As "CustomerMinutes",
FROM "dbo"."combined"

我希望每个合约子女的总和都会重新启动,但是,它确实表现得那样。

这是我得到的结果:

   ID CustomerContractChild Minutes CustomerMinutes 
       1 20150101+C1          1000       1000     
       2 20150101+C1          2000       3000 
       3 20150101+c2          2500       5500

这就是我的期望

   ID CustomerContractChild Minutes CustomerMinutes 
       1 20150101+C1          1000       1000     
       2 20150101+C1          2000       3000 
       3 20150101+c2          2500       2500

我做错了什么?

2 个答案:

答案 0 :(得分:0)

我已经运行了这个并且需要获得准确的输出。这与没有ContractCustomer列的那个相同(你不会在结果中显示它),代码中的ContractCustomerChild列在结果中显示CustomerContractChild并在FROM之前删除。

Select 
    "combined".ID, 
    "combined"."CustomerContractChild", 
    "combined"."Minutes",
     SUM( "combined"."Minutes") OVER (PARTITION BY      "combined"."CustomerContractChild" ORDER BY "combined"."id") As "CustomerMinutes"
FROM "dbo"."combined"

答案 1 :(得分:0)

感谢您的回复。由于排序等原因,我的眼睛肯定一直在玩我。我检查了结果,看起来是正确的。我现在要关闭它。我会再抽取一些结果,如果他们出错了就去试试。