群组如何在续集中运作?

时间:2014-03-25 06:48:19

标签: javascript sequelize.js

我正在通过Sequelize查找group by查询,似乎无法找到任何文档。

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

7 个答案:

答案 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']
})