假设您有结果集,例如:
DATE ID cost --------------------------------------- 01/01/2011 1 10 01/01/2011 1 10 01/01/2011 2 10 01/01/2011 2 10
我想要一种方法来对成本值进行求和,但对于每个不同的ID只需要一次,这样当我按日期分组时,我得到的结果如
DATE cost
01/01/2011 20
我先尝试过类似的东西
sum(distinct cost)
但是诅咒只返回10
我也尝试过:
sum(case when distinct id then cost else 0 end)
解决方法
我将假设相同的ID在同一天总是具有相同的成本.我还假设您的RDBMS支持派生表.在这种情况下,这就是你想要的:
select date,sum(cost) from (select distinct date,id,cost from YourTable) group by date
更新
Oracle派生表不需要别名.