我想分别得到A组和B组的和,然后除以总和.

我试着用这个:

select name, sum(qt)
from ntbl
group by name 
order_id name qt
1 A 12
2 A 20
3 B 33
4 B 45

结果应该是:

name qt dv
A 32 0.29
B 78 0.70

推荐答案

可以将聚合函数和窗口函数组合在一起:

select name
     , sum(qt) as sum_qt
     , sum(qt) / sum(sum(qt)) over () * 100 as pct_qt
from t
group by name

Mysql相关问答推荐

如果WHERE语句包含所有列,唯一键顺序是否重要?

MySQL:统计单词在单元格中出现的次数,并将数字放在bra中单词的旁边

MySQL grant语句中的用户名区分大小写

根据日期重叠转换表格

Mysql - 按周分组但从 1 开始计数

「已解决」MySQL 连接在 vb6 上出现运行时错误 -2147467259 (80004005),但在 VBA Excel 上工作

创建 mySQL BEFORE/AFTER UPDATE 触发器

java.lang.NullPointerException:无法调用com.proj.my.repository.OrderRepository.save(Object),因为this.orderRepository为空

Mysql Pivot 查询/建议

创建将列与多个值进行比较的索引

为什么 fetch 方法不能获取任何东西?(feat node.js,restAPI)

mysql - 如何加入表中的动态列

Select 在同一天售出不同活动门票的收银员

什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?

MySQL:按字段排序,将空单元格放在末尾

在 MySQL 中找不到 outfile 创建的文件

MySQL获取两个值之间的随机值

电话号码和地址的mysql数据类型

如何通过一个语句描述数据库中的所有表?

按 COUNT(*) 过滤?