mysql - 根据一定条件SQL计算各组贡献百分比

标签 mysql sql

我想计算 2 个组的“数量”贡献百分比,其中“客户 ID”出现多次的组 1 和“客户 ID”出现一次的组 2。例如:

|ID | OrderID   |Quantity
|---|--------   |-----
|1  |10248      |12
|2  |10248      |10 
|3  |10248      |5 
|4  |10249      |9
|5  |10249      |40
|6  |10250      |10

-----进入-----

OrderID |Quantity
10248   |27
10249   |49
10250   |10

-----最终进入-----

Group    % tot Quantity
1         12%   <--- Just OrderID 10250 since it has only 1 order
2         88%

最佳答案

select
   100.0 * sum(case when cnt = 1  then sumQty else 0 end) / sum(sumQty) as "single Order"
  ,100.0 * sum(case when cnt <> 1 then sumQty else 0 end) / sum(sumQty) as "multiple Orders"
from
 (
    select 
       OrderID
      ,sum(Quantity) as sumQty
      ,count(*) as cnt
    from myTable
    group by OrderId
 ) as dt

关于mysql - 根据一定条件SQL计算各组贡献百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50580961/

相关文章:

sql - 如何更改spark sql中的列值

sql - 无法连接到SQL

sql - 用 Select 查询替换 While 循环

mysql - 如何选择最大值并返回多个条目

MySql 子查询 : average difference, 按列分组

php - 检查用户以html形式输入的数据是否已存在于php的数据库中

c# - 正确存储 SQL 凭据

MySql 控制台无响应

mysql - 将 MySQL 数据导出到 CSV 文件时如何保留换行符?

php - 数据库提交后立即将内容附加到页面