我想从表quotationVersion
的名为quotation
的表的列中选择最大值,
getOneMaximumQuotationVersion() {
const query = this.createQueryBuilder("quotation");
query.select("MAX(quotation.quotationVersion)", "max");
// query.addSelect("MAX(quotation.quotationVersion)", "max");
return query.getOne();
}
答案 0 :(得分:1)
如果要在选择子句中添加 MAX , SUM 之类的功能,则需要执行 getRawOne()或 getRawMany()。这将给您原始的响应:
SELECT TYPE,
COUNT(VALUE),
(select count(*) from table1 where code = 'Q2') ,
COUNT(VALUE) / (select count(*) from table1 where code = 'Q2') as score
FROM Table1
where
CODE = 'Q2' AND
VALUE in (1,2)
GROUP BY TYPE
答案 1 :(得分:0)
方法getOne
和getMany
用于选择实际的数据库实体。如果选择一个计算值,则需要使用getRawOne
(或对于多个值使用getRawMany
)。注意,返回的值是一个对象,其键是您在调用select
时指定的别名。在您的情况下,别名称为max
。
也不要忘记操作的异步性质。
因此,我将像这样重写您的函数:
async getOneMaximumQuotationVersion() {
const query = this.createQueryBuilder("quotation");
query.select("MAX(quotation.quotationVersion)", "max");
const result = await query.getRawOne();
return result.max;
}
更多信息可以在official documentation中找到。