sql按列值从行返回百分比

时间:2019-02-24 11:15:41

标签: sql

我有一个包含3列的表格:名称,A,B。

“名称”中的名称重复多次。

我希望对Name中的每个名称返回“ A”中的值之和与“ B”中的值之和相除。

例如:

Name    A    B 
---------------
'fds'   5    4
'fds'   3    6
'keo'   3    4

我想要这张桌子:

Name    Percentage
-------------------
'fds'      0.8
'kep'      0.75

2 个答案:

答案 0 :(得分:3)

您需要使用$("button").click(() => { $("left-btn").prop("disabled", true); $("right-btn").prop("disabled", true); setTimeout( () => { $("left-btn").prop("disabled", false); $("right-btn").prop("disabled", false); },2000); });

group by

答案 1 :(得分:1)

AB的数据类型是什么?在大多数数据库和大多数情况下,这将起作用:

select name, sum(A) / sum(B) as ratio
from t
group by name;

编写此代码以防止被0除以更安全:

select name, sum(A) / nullif(sum(B), 0) as ratio
from t
group by name;

如果列均为整数(任何形式),则某些数据库将进行整数除法。在这种情况下,我经常乘以1.0:

select name, sum(A) * 1.0 / nullif(sum(B), 0) as ratio
from t
group by name;

请注意,我已将该列重命名为ratio。传统上,percentages从0到100,而不是从0到1。