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

假设您有结果集,例如:
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派生表不需要别名.

相关文章

本篇内容主要讲解“sqlalchemy的常用数据类型怎么使用”,感...
今天小编给大家分享一下sqlServer实现分页查询的方式有哪些的...
这篇文章主要介绍“sqlmap之osshell怎么使用”,在日常操作中...
本篇内容介绍了“SQL注入的知识点有哪些”的有关知识,在实际...
1. mssql权限sa权限:数据库操作,文件管理,命令执行,注册...
sql执行计划如何查看?在SPL庞大的数据中我们不知道如何查看...