nickyqian 2022-11-02 00:48 采纳率: 62.5%
浏览 168
已结题

sql问题:求机构的客户数量的特殊情况

同一客户可能对应2个及2个以上的机构,如果出现此情况时,平均分配给所属机构(若某一客户有两条机构都为A,一条为B,则分配给A的数量为0.6666即2/3,分配给B的数量为0.3333即1/3)
如:
TABLE1
| id | inst|
| 1001 | A |
| 1001 | A |
| 1001 | B |
| 1002 | C |
| 1003 | A |
| 1004 | A |
| 1005 | B |
| 1006 | B |
| 1007 | B |
| 1007 | C |
| 1008 | C |

期望得到结果:
| inst | amt |
| A | 2.6666 |
| B | 2.8333 |
| C | 2.5 |

最后客户总数还是8个
请教sql的语句该怎么写?成分感谢!

借用excel来说明一下:

img

  • 写回答

7条回答 默认 最新

  • 游一游走一走 2022-11-02 06:22
    关注
    获得2.10元问题酬金
    SELECT 
        inst, SUM(col1)
    FROM
        (SELECT 
            id,
                inst,
                (COUNT(1) / (SELECT 
                        COUNT(1)
                    FROM
                        table1 t1
                    WHERE
                        t1.id = t2.id)) AS col1
        FROM
            table1 AS t2
        GROUP BY t2.id , t2.inst) AS t3
    GROUP BY t3.inst
    
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月10日
  • 修改了问题 11月2日
  • 修改了问题 11月2日
  • 修改了问题 11月2日
  • 展开全部

悬赏问题

  • ¥15 adv找不到可向其添加属性的有效项目。
  • ¥15 cesm2.2.0移植问题。./manage_externals/checkout_externals
  • ¥15 ntp对时中的时标问题
  • ¥35 pcb上电后,不一会儿,主控过热烧毁
  • ¥15 ubuntu,windows,文件传输,Linux
  • ¥15 北斗定位,cors,无人机,图传
  • ¥15 Unity热更新框架问题
  • ¥20 如何提交icra的附录.应该在哪里提交
  • ¥20 请教yolov8出现如下bug怎么办
  • ¥30 Armoury Crate 无法打开链接然后卸载了无法安装回去