请教一个sql去重排序求和的问题
答案:3 悬赏:50 手机版
解决时间 2021-03-10 03:11
- 提问者网友:遮云壑
- 2021-03-09 13:02
请教一个sql去重排序求和的问题
最佳答案
- 五星知识达人网友:白昼之月
- 2021-03-09 14:05
我理解太差了,没有看明白……
取和最大的前两名
select top 2 name from (
select name,sum(num) n from table
group by name) t
where t.n desc
不包含前两名的所有人
select name from table
where name not in(
select top 2 name from (
select name,sum(num) n from table
group by name) t
where t.n desc
)
名字取出了,那么现在就求和,前面的只是给你看看,最终综合成下面这样的一条语句,如果你需要效率高点,将not in修改为not exists,还有,你给的东东也不全,我就按照大概意思手打出来的,要是有错误,见谅,但是思路和这个差不多,你看看是不是你要的
前两名分组求和
select top 2 name,n from (
select name,sum(num) n from table
group by name) t
where t.n desc
union all
其他的求和,使用union链接
select '其他',
(select sum(num) from table
where
name not in(
select top 2 name from (
select name,sum(num) n from table
group by name) t
where t.n desc
))
取和最大的前两名
select top 2 name from (
select name,sum(num) n from table
group by name) t
where t.n desc
不包含前两名的所有人
select name from table
where name not in(
select top 2 name from (
select name,sum(num) n from table
group by name) t
where t.n desc
)
名字取出了,那么现在就求和,前面的只是给你看看,最终综合成下面这样的一条语句,如果你需要效率高点,将not in修改为not exists,还有,你给的东东也不全,我就按照大概意思手打出来的,要是有错误,见谅,但是思路和这个差不多,你看看是不是你要的
前两名分组求和
select top 2 name,n from (
select name,sum(num) n from table
group by name) t
where t.n desc
union all
其他的求和,使用union链接
select '其他',
(select sum(num) from table
where
name not in(
select top 2 name from (
select name,sum(num) n from table
group by name) t
where t.n desc
))
全部回答
- 1楼网友:愁杀梦里人
- 2021-03-09 16:51
总和是怎么算出来的?
- 2楼网友:痴妹与他
- 2021-03-09 15:34
a.b.c条件,sun函数返回数值总和,值排列10个币
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯