Ответ 1
issue: https://github.com/sequelize/sequelize/issues/348
User.findAll({
group: ['field']
})
i использовать [email protected]
Я ищу group by
запросы через Sequelize и не могу найти никакой документации.
SELECT column, count(column)
FROM table
GROUP BY column
issue: https://github.com/sequelize/sequelize/issues/348
User.findAll({
group: ['field']
})
i использовать [email protected]
Я думаю, вы ищете что-то вроде этого:
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) { });
Сгруппировать с подсчетом 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'],
})
Пример: как добавить удобный псевдоним в столбец сгруппированной функции.
Я сделал это как отдельный ответ в основном потому, что он не форматировал бы хорошо в комментарии... иначе я бы просто добавил его к ответу 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.
Попробуй это -
Table.count(
{
attributes: ['column'],
group: 'column',
}
Ваш код должен выглядеть примерно так, используя стандарт ES6.
Table.findAll({ attributes: ['column1', sequelize.fn('count', sequelize.col('column2'))], group: ["Table.column1"] }).then( (result) => { })