我是Sequelize的新手,并且坚持构建一个查询,我尝试使用Postgres查询,但是它无法在sequelize中构建相同的查询 下面是postgres查询
SELECT count, createdDate FROM (
select id,COUNT(*) as count, to_char("createdAt", 'DD-MM-YYYY') as createdDate from public.audit
WHERE "createdAt" >= '2020-02-15' AND "createdAt"<= '2020-02-27' group by id,createddate) as a
group by count,createdDate
此查询工作正常
下面是我到目前为止形成的Sequelize查询
{
attributes:[
'id',
[Sequelize.literal('to_char("audit"."createdAt", \'DD-MM-YYYY\')'),'createdDate'],
[Sequelize.fn('COUNT','*'),'count']
],
where: {
createdAt:{ [Op.between]:['2020-02-15','2020-02-27']}
},
group:[
'id',
'createdDate'],
raw : true ,
nest : true
}
此查询使我可以按用户ID进行计数,但现在我无法按计数和日期进行分组
我们非常感谢您的帮助
答案 0 :(得分:0)
我不了解您要开发的查询的目的。不管createdDate
的值如何,count
的值将始终为1,因为您已经在内部查询的group语句中包括了id
。
如果您需要一些语法,请参考以下代码-
const companyDetails = Company.count({
attributes: ['id', 'createdAt'],
where: {
createdAt: { [op.between]: ['2019-02-15', '2020-02-27'] }
},
group: ['createdAt']
});