sql显示

图中a列对应多个c列,想要获取a列对应的c列的总和,然后b列正常显示,比如对应的c列总和是300,那么a列的每个值后面都显示300image.png

SQL yzmknpQp2068966 发布于 2024-4-18 14:06 (编辑于 2024-4-18 14:07)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
小潘同學Lv5初级互助
发布于2024-4-18 16:44(编辑于 2024-4-18 17:24)

MySQL有一种写法,你参考一下:

SELECT a, b, c, SUM(c) OVER (PARTITION BY a, b, c)

FROM Tab

GROUP BY 1,2,3

最佳回答
0
snrtuemcLv8专家互助
发布于2024-4-18 14:07(编辑于 2024-4-18 14:10)

select t1.a,t1.b,t2.nc from 表 t1

left join 

(select a,sum(c) as nc from 表 group by a) t2 on t1.a=t2.a

  • yzmknpQp2068966 yzmknpQp2068966(提问者) 不行,这样一分b列有不同的值,就不是全部的了
    2024-04-18 14:07 
  • snrtuemc snrtuemc 回复 yzmknpQp2068966(提问者) 更新的了,做关联就可以
    2024-04-18 14:09 
  • yzmknpQp2068966 yzmknpQp2068966(提问者) 回复 snrtuemc 还有没有其他办法,就是因为用这个关联太慢了,所以我才求助的。。正常0.7秒就查好了,关联的话17秒
    2024-04-18 14:21 
  • snrtuemc snrtuemc 回复 yzmknpQp2068966(提问者) 数据很多吗,这个目前是最快的了
    2024-04-18 14:29 
  • yzmknpQp2068966 yzmknpQp2068966(提问者) 回复 snrtuemc 这个子查询单独查询也很快,但是一关联起来就慢了
    2024-04-18 14:33 
最佳回答
0
用户bBKn44909079Lv3见习互助
发布于2024-4-18 17:16

用开窗函数

select a,b,c,sum(c) over(partition by a) from 表

  • 4关注人数
  • 232浏览人数
  • 最后回答于:2024-4-18 17:24
    请选择关闭问题的原因
    确定 取消
    返回顶部