我有一个包含两列的表格,最大位数(容量)和可用位置数(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查询的任何想法都允许我这样做吗?
谢谢!
答案 0 :(得分:20)
试试这个:
SELECT availablePlaces, capacity,
ROUND(availablePlaces * 100.0 / capacity, 1) AS Percent
FROM mytable
您必须乘以100.0而不是100,以避免整数除法。此外,您必须使用ROUND
舍入到第一个十进制数字。
答案 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。