我有一张死亡人数和人口表,我需要将其标准化为每 10 万人的死亡人数:
CREATE TABLE all_states (
state character varying(20) NOT NULL,
fatalities integer NOT NULL,
population integer NOT NULL
);
我想计算每 100,000 人的死亡率,所以我做了:
SELECT *, (fatalities/population)*100000 AS rate
FROM all_states;
但我得到的只是 0s:
STATE population fatalities rate
"Alabama" 4802740 75 0
"Alaska" 722718 39 0
"Arizona" 6482505 69 0
"Arkansas" 2937979 93 0
"California" 37691912 390 0
我觉得我在这里错过了一些超级简单的东西。我尝试将其转换为浮点数,但这并没有改变结果:
SELECT state, population, fatalities,
CAST(((fatalities/population)*100000) AS float) AS rate
FROM all_states;
这里的问题是整数除法中的 / 运算符会截断结果,请检查 数学函数和运算符
尝试:
或者