我有一个简单的查询,返回计数。
select count(*)
from table
wehre ....
我希望计数返回的类型是整数型而不是字符串型。在Postgres中,默认类型似乎是字符串。
我已经尝试了以下方法:
select cast(count(*) as INTEGER)
....
但它不起作用。查询运行了,但计数的类型仍然是字符串。我已经尝试过其他方法,但都没有成功。
有没有办法将计数作为数字而不是字符串类型返回?
编辑:
在 DataGrip 中检查结果表的类型时,它显示计数返回的类型为 "count: Int
"。
让我感到困惑的是 Postman 返回的结果。 查询语句如下:
select person.age, count(*) from ....
当查询在所在的终点运行时,Postman将其显示为以下结果:
[{"age":18, count: "45"}, ....]
因此,我假设来自Postgres的count是以字符串形式返回的,因为表格上的age(INTEGER类型)确实以数字类型而不是字符串类型返回。现在,我对为什么一个列类型正确而另一个列不正确(计数...)感到困惑。
使用Sequelize运行查询:
const result = await sequelize.query(query, { type: sequelize.QueryTypes.SELECT });
然后直接返回:
res.status(200).json(result)
select pg_typeof(count(*)) from cell_per; bigint
。你是怎么看出/确定它是一个字符串的? - Adrian Klaverage
在表的模型中有一个声明类型,而count
则是生成并默认转换为字符串类型。 - Adrian Klavercount(*)
作为字符串返回。 - user330315