首页 > 解决方案 > 我的 postgresql 查询有什么问题,为什么我没有得到正确的计算

问题描述

所以基本上我有一个数据库/表,其中包含许多学生的 id 以及他们在多个考试中各自的分数。我想要做的是在我的查询中创建一个数学函数,以便我只显示我选择的两个考试从一个考试到下一个考试的百分比变化。这是我的查询,它确实返回了一个结果,但不是我想要的:

SELECT ("2019-2020 NWEA Reading Fall Test Percentile" - "2018-2019 NWEA Reading Spring Test Percentile") / "2018-2019 NWEA Reading Spring Test Percentile" * 100 AS "percentage_change" FROM ppn_practice;

我面临的两个问题是我得到的值不正确,我怀疑这是因为我得到的最终表有一个名为“percentage_change”的列,它是一个 INTEGER 数据类型。我需要知道如何使它成为 NUMERIC。

谢谢你

标签: postgresql

解决方案


如果您各自的列名是col1and col2in tableppn_practice并且这些列的相应数据类型是数字,则不应出现您的问题。此查询将为您提供您想要的内容:

SELECT (col1- col2) / col3 * 100 AS "percentage_change" FROM ppn_practice;

请通过对列名进行一些更简单的查询来交叉检查您使用的列的数据类型以及列名是否正常。


推荐阅读