mysql - 按其他列计数占总组的百分比
问题描述
我想从 mysql 中具有多个购买记录的项目中获取总销售额的百分比。提前致谢。
我的桌子
ItemId | SalesAmt
-------+---------
X1000 | 50
X1000 | 200
X1001 | 150
期望的结果
itemType | Sales_pct
---------+----------
multip | 0.75
single | 0.25
解决方案
一种选择使用两个级别的聚合:
select itemtype, sum(amt) / sum(sum(amt)) over() sales_ratio
from (
select
case when count(*) > 1 then 'mutiple' else 'single' end itemtype,
sum(amt) amt
from mytable
group by itemid
) t
group by itemtype
推荐阅读
- activemq - ActiveMQ 消息组消费者缓存
- html - Jekyll 内置 Sass 支持媒体查询生成
- git - Git:恢复被“git update-ref -d HEAD”删除的文件
- actionscript-3 - Adobe Flash 动作脚本 3
- amp-html - AMP 列表 - 如果我们没有收到 API 的响应,如何删除空格?
- typescript - 使用 `function f();` 语法进行记忆
- python-3.x - Python - 尝试使用 Selenium 登录网站时出现 urllib3 MaxRetryError
- ruby-on-rails - 阻止 f.range_field 提交数据,除非与
- python - 检查矩阵是否可以用 Jacobi 方法解决的代码不起作用
- javascript - 如何从 mySQL 中获取数据并在 Modal 中查看