这是UNION关联的一个临时表
想要在最后面按照每个价格段所占分类的百分比这么写:

解决方案 »

  1.   

    create table test(name varchar(10),num decimal(18,2))
    go
    insert into test values
    ('zhangsan' , 100 ) ,('zhangsan' , 100) ,
    ('lisi' , 50 ) ,('lisi' , 150) ,
    ('wang' , 30 ) ,('wang' , 80)
    go
    select * from test 
    go
    select name , num , cast(num / sum(num) over(partition by name) as decimal(18,2)) x
    from test 
    go
    drop table test 
    go
    (6 行受影响)
    name       num
    ---------- ---------------------------------------
    zhangsan   100.00
    zhangsan   100.00
    lisi       50.00
    lisi       150.00
    wang       30.00
    wang       80.00(6 行受影响)name       num                                     x
    ---------- --------------------------------------- ---------------------------------------
    lisi       50.00                                   0.25
    lisi       150.00                                  0.75
    wang       30.00                                   0.27
    wang       80.00                                   0.73
    zhangsan   100.00                                  0.50
    zhangsan   100.00                                  0.50(6 行受影响)