如何在sequelize中使用COUNT、GROUP BY、ORDER BY编写查询

ana*_*and 3 sequelize.js

我想使用 GROUP BY、ORDER BY、COUNT 在 Sequelize ORM 中编写查询。

这是我的 SQL 查询:

SELECT COUNT(1),
       bucket_name,
       clusterId
FROM aidc_tenoco.output_table
WHERE clusterId IS NOT NULL
GROUP BY clusterId
ORDER BY COUNT(1) DESC
LIMIT 0,
      1
Run Code Online (Sandbox Code Playgroud)

我想写续集,请帮帮我。

Asg*_*ani 9

代码

const Op = require("sequelize").Op;
const sequelize = require("../models").sequelize;

models.OutputTable.findOne({
    where: {
      clusterId: {
        [Op.ne]: null,
      },
    },
    attributes: ["bucket_name", "clusterId", [sequelize.fn("COUNT", "1"), "CountedValue"]],
    group: ["clusterId"],
    order: [[sequelize.col("CountedValue"), "DESC"]],
});
Run Code Online (Sandbox Code Playgroud)

解释

使用文档 -查询 它非常简单。

findOne方法将您的查询限制为 1。属性子句选择column_names。请注意,sequelize 不会识别您的CountedValue列,因此order它使用sequelize.col(columnAlias).

希望这可以帮助。