首页 > 解决方案 > 如何在 select 语句中声明新列的类型?

问题描述

如何在 select 语句中声明新列的类型。我已经输出了两个选择语句的除法,但它返回 0 值。这可能是因为它自动将列声明为 bigint。我想在查询中将其更改为数字,以便我可以看到浮点数。我怎样才能做到这一点?

SELECT (SELECT COUNT(*)
FROM public."bbb"
WHERE "aaa" IN (    SELECT "aaa"
                        FROM public."ccc"
                        WHERE "Stream" = 'A')
AND "quantity" > 1) /


(SELECT COUNT(*)
FROM public."bbb"
WHERE "aaa" IN (    SELECT "aaa"
                        FROM public."ccc"
                        WHERE "Stream" = 'A')) as result

标签: postgresql

解决方案


您正在经历整数除法。使用类型转换。在符合标准的语法中

CAST (expression AS double precision)

或者用更短的 PostgreSQL 俚语

expression::double precision

推荐阅读