Как группа работает в продолжении?

Я ищу group by запросы через Sequelize и не могу найти никакой документации.

SELECT column, count(column)  
FROM table 
GROUP BY column

Ответы

Ответ 2

Я думаю, вы ищете что-то вроде этого:

 Table.findAll({
   attributes: ['column1', 
     sequelize.fn('count', sequelize.col('column2'))], 
   group: ["Table.column1"]
 }).success(function (result) { });

Обновление. Новые версии Sequelize используют . then вместо .success.

 Table.findAll({
   attributes: ['column1', 
     sequelize.fn('count', sequelize.col('column2'))], 
   group: ["Table.column1"]
 }).then(function (result) { });

Ответ 3

Сгруппировать с подсчетом sequelize ORM

'field' - вы можете переименовать эту строку, это ваше field(column) в базе данных

'count' - зарезервированная строка, необходимая для get count в sequelize

'cnt' - вы можете переименовать эту строку, если вы count

Sequelize версия 3.25.0

User.findAll({
      attributes: ['field', [sequelize.fn('count', sequelize.col('field')), 'cnt']],
      group: ['field'],
})

Ответ 4

Пример: как добавить удобный псевдоним в столбец сгруппированной функции.

Я сделал это как отдельный ответ в основном потому, что он не форматировал бы хорошо в комментарии... иначе я бы просто добавил его к ответу Sampat.

function getSumsBySomeId() {
  const criteria = {
    attributes: ['some_id', [sequelize.fn('sum', sequelize.col('some_count')), 'some_count_sum']],
    group: ['some_id'],
    raw: true
  };
  return Table.getAll(criteria);
}

ДОХОДНОСТЬ:

{ some_id: 42, some_count_sum: 100 },
{ some_id: 43, some_count_sum: 150 }
...
etc.

Ответ 5

Попробуй это -

Table.count(
{
   attributes: ['column'], 
   group: 'column',
} 

Ответ 6

Ваш код должен выглядеть примерно так, используя стандарт ES6.

Table.findAll({ attributes: ['column1', sequelize.fn('count', sequelize.col('column2'))],   group: ["Table.column1"]  }).then( (result) => { })