Osc*_*mez 6 sql oracle select aggregate-functions
假设您有结果集,例如:
DATE ID cost
---------------------------------------
01/01/2011 1 10
01/01/2011 1 10
01/01/2011 2 10
01/01/2011 2 10
Run Code Online (Sandbox Code Playgroud)
我想要一种方法来对成本值进行求和,但对于每个不同的ID只需要一次,这样当我按日期分组时,我得到的结果如
DATE cost
Run Code Online (Sandbox Code Playgroud)
01/01/2011 20
Run Code Online (Sandbox Code Playgroud)
我先尝试过类似的东西
sum(distinct cost)
Run Code Online (Sandbox Code Playgroud)
但是诅咒只返回10我也尝试过:
sum(case when distinct id then cost else 0 end)
Run Code Online (Sandbox Code Playgroud)
但这不是一个功能性查询.
Adr*_*iro 17
我将假设相同的ID在同一天总是具有相同的成本.我还假设您的RDBMS支持派生表.在这种情况下,这就是你想要的:
select date, sum(cost)
from
(select distinct date, id, cost from YourTable)
group by date
Run Code Online (Sandbox Code Playgroud)
更新
Oracle派生表不需要别名.
| 归档时间: |
|
| 查看次数: |
53802 次 |
| 最近记录: |