Как написать вложенные подзапросы в Sequelize - PullRequest
0 голосов
/ 27 февраля 2020

Я новичок в 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 

}

Этот запрос дает мне счет на идентификатор пользователя, но теперь я не могу группировать по количеству и дате

Любая помощь высоко ценится

1 Ответ

0 голосов
/ 27 февраля 2020

Я не понял цели запроса, который вы хотите разработать. Независимо от значения createdDate значение count всегда будет равно 1, поскольку вы включили id в групповой оператор внутреннего запроса.

Если вы ищете какой-то синтаксис, пожалуйста, см. следующий код -

  const companyDetails = Company.count({
    attributes: ['id', 'createdAt'],
    where: {
      createdAt: { [op.between]: ['2019-02-15', '2020-02-27'] }
    },
    group: ['createdAt']
  });
...