计算SQL Query中两列之间的百分比作为另一列

时间:2016-04-10 15:01:48

标签: sql percentage

我有一个包含两列的表格,最大位数(容量)和可用位置数(availablePlaces)

我想将availablePlaces计算为容量的百分比。

availablePlaces    capacity
1                  20
5                  18
4                  15

期望的结果:

availablePlaces    capacity  Percent
1                  20        5.0
5                  18        27.8
4                  15        26.7

SELECT SQL查询的任何想法都允许我这样做吗?

谢谢!

2 个答案:

答案 0 :(得分:20)

试试这个:

SELECT availablePlaces, capacity, 
       ROUND(availablePlaces * 100.0 / capacity, 1) AS Percent
FROM mytable

您必须乘以100.0而不是100,以避免整数除法。此外,您必须使用ROUND舍入到第一个十进制数字。

Demo here

答案 1 :(得分:0)

为什么不使用诸如format_number(或数据库中的等效数字)之类的数字格式化功能来格式化双精度百分比?此示例是通用的。返回的值是一个字符串。

WITH t 
AS 
( 
    SELECT count(*) AS num_rows, count(foo) as num_foo
    FROM mytable
)

SELECT *, format_number(num_foo/num_rows, '#.#%') AS pct_grade_rows
FROM t

这避免了使用round并将分子乘以100。