我有一个表三列的位置,计数位置,表来自。如何乘以(计数位置)然后除以得到百分比。
示例:尝试划分同一列中的两个位置!然后是100乘(Count Location / Count Location)*100
Atlanta, GA 6 CL Table
Atlanta, GA 20 TW Table
The result (6/20)*100=30%
|Location |Count Location| Table From|
-------------------------------------------
Atlanta, GA 6 CL Table
Atlanta, GA 20 TW Table
Austin, TX 27 TW Table
Austin, TX 5 CL Table
Chicago, IL 6 CL Table
Chicago, IL 19 TW Table
Corona, CA 6 CL Table
Corona, CA 50 TW Table
Dallas, TX 37 TW Table
Dallas, TX 3 CL Table
Denver, CO 3 CL Table
Denver, CO 19 TW Table
Houston, TX 21 TW Table
Houston, TX 11 CL Table
是否有办法在所有地点执行此操作,并在旁边的新列中显示结果?或者我是否需要制作新表以使其更容易?
答案 0 :(得分:1)
好的,现在我明白了。你想要TW的CL百分比。您可以使用窗口函数执行此操作:
select t.*,
(100 * max(case when tablefrom = 'CL Table' then count end) over (partition by location)/
max(case when tablefrom = 'TW table' then count end) over (partition by location)
) as percentage
from table t;
如果您只想要每个位置的结果(这对我来说更有意义),只需使用聚合:
select location,
(100 * max(case when tablefrom = 'CL Table' then count end) /
max(case when tablefrom = 'TW table' then count end)
) as percentage
from table t
group by location