我正在通过Sequelize查找group by
查询,似乎无法找到任何文档。
SELECT column, count(column)
FROM table
GROUP BY column
答案 0 :(得分:42)
问题:https://github.com/sequelize/sequelize/issues/348
User.findAll({
group: ['field']
})
我使用sequelize@2.0.0-dev9
答案 1 :(得分:42)
我认为你在寻找这样的东西:
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) { });
答案 2 :(得分:9)
按计数sequelize ORM
'field'
- 您可以重命名此字符串,它是您在数据库中的field(column)
'count'
- count
sequelize
的保留字符串需要
'cnt'
- 您可以重命名此字符串,这是您的输出count
Sequelize版本3.25.0
User.findAll({
attributes: ['field', [sequelize.fn('count', sequelize.col('field')), 'cnt']],
group: ['field'],
})
答案 3 :(得分:1)
示例:如何为分组函数列添加方便的别名。
我这是一个单独的回复,主要是因为它不会在评论中很好地格式化......否则我会把它添加到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.
答案 4 :(得分:1)
试试这个 -
Table.count(
{
attributes: ['column'],
group: 'column',
}
答案 5 :(得分:0)
使用ES6标准,您的代码应类似于以下内容。
Table.findAll({ attributes: ['column1', sequelize.fn('count', sequelize.col('column2'))], group: ["Table.column1"] }).then( (result) => { })
答案 6 :(得分:-1)
**尝试一下*
Table.findAll({
group: ['column']
})