let duplicates = await Books.query()
.select('book_id')
.groupBy('book_id')
.having(knex.count('book_id'), '>', 1);
在这里,我想在haveing子句中使用count聚合器。如何在knex.having((函数中执行此操作?
使用一小段knex.raw
可能是最简单的方法。
let duplicates = await Books.query()
.select('book_id')
.groupBy('book_id')
.having(knex.raw('count(book_id) > 1'));
或者,如果你想用反勾号正确地转义列名,你可以使用??
位置参数
let duplicates = await Books.query()
.select('book_id')
.groupBy('book_id')
.having(knex.raw('count(??) > 1', 'book_id'));