SQL如何通过不同的id进行条件求和?

前端之家收集整理的这篇文章主要介绍了SQL如何通过不同的id进行条件求和?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设您有结果集,例如:
  1. DATE ID cost
  2. ---------------------------------------
  3. 01/01/2011 1 10
  4. 01/01/2011 1 10
  5. 01/01/2011 2 10
  6. 01/01/2011 2 10

我想要一种方法来对成本值进行求和,但对于每个不同的ID只需要一次,这样当我按日期分组时,我得到的结果如

  1. DATE cost
  1. 01/01/2011 20

我先尝试过类似的东西

  1. sum(distinct cost)

但是诅咒只返回10
我也尝试过:

  1. sum(case when distinct id then cost else 0 end)

但这不是一个功能查询.

解决方法

我将假设相同的ID在同一天总是具有相同的成本.我还假设您的RDBMS支持派生表.在这种情况下,这就是你想要的:
  1. select date,sum(cost)
  2. from
  3. (select distinct date,id,cost from YourTable)
  4. group by date

更新

Oracle派生表不需要别名.

猜你在找的MsSQL相关文章