knex.js选择平均值和圆形

vxbzzdmp  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(357)

我正在将一个应用程序从php/mysql切换到express,并使用knex连接到mysql数据库。在我的一个查询中,我使用了这样的语句(为了简洁起见,我缩短了它)

SELECT ROUND(AVG(Q1),2) AS Q1 FROM reviews WHERE id=? AND active='1'

如果我使用knex.raw,我可以使用round,但我想知道是否有一种方法可以使用query builder编写这个。使用querybuilder使得处理视图端的输出比导航原始查询返回的对象容易得多。
这是我到目前为止在knex的资料。

let id = req.params.id;

knex('reviews')
//Can you wrap a ROUND around the average?  Or do a Round at all? 
.avg('Q1 as Q1')
.where('id', '=', id)

非常感谢!

fkvaft9z

fkvaft9z1#

你可以用 raw 内部 select . 在这种情况下:

knex('reviews')
  .select(knex.raw('ROUND(AVG(Q1),2) AS Q1'))

在处理原始语句时,请查看此处的文档以获取更多示例和良好实践。

相关问题