2023-04-07
求一SQL
with cte as
(
select 1 as id,100 as total
union all
select 1 as id,100 as total
union all
select 2 as id,100 as total
union all
select 3 as id,33 as total
)
select sum(total) from cte
复制
上述结果为333
但我实际想要的结果为233 当id重复的时候 取一行数据就可以了。
我有复杂的实现算法,但由于业务SQL很复杂,不能适用
贴一下复杂的解决方案供交流
with cte as
(
select 1 as id,100 as total
union all
select 1 as id,100 as total
union all
select 2 as id,100 as total
union all
select 3 as id,33 as total
),
cte1 as
(
select @id,case when id = @id then 0 else total end as calctotal,
@id:= id
from cte,(select @id := -1) as rr
)
select sum(calctotal) from cte1;
复制
这样操作后结果就为233.
我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
回答交流
Markdown
请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
