【问题标题】:rank function in SequelizeSequelize 中的排名函数
【发布时间】:2023-02-24 03:23:47
【问题描述】:

我有一个带选票的数据库。 我做了一个 sequelize 函数,它计算每个答案的所有选票。 我想添加一个新的冒号,其排名取决于计数。我尝试添加一个 Sequelize.Literal () 但它不起作用。

await votes.findAll({
      attributes: [
        "answerId",
        [Sequelize.col("answersDb.answer"), "answerText"],
        [Sequelize.fn("COUNT", Sequelize.col("surveyvote.id")), "count"],
        [Sequelize.literal("(RANK() OVER (ORDER BY count DESC))"), "rank"]
      ],
      include: [
        {
          model: modelAnswer,
          as: "answersDb",
          attributes: ["answer"],
        },
      ],
      where: {
        questionId: req.params.questionId,
      },
      group: "answerId",
      order: [["count", "DESC"]],
      raw: true,

    });
   

错误是:

ERROR 1054 (42S22): Unknown column 'count' in 'window order by'

我找到了解决问题的方法。你能帮助我吗 ?

【问题讨论】:

  • 你得到了什么错误?
  • 哦,是的,对不起,我忘了......我把它添加到主帖中
  • 看来你需要在RANKORDER BY中重复COUNT聚合

标签: mysql sequelize.js ranking rank


【解决方案1】:

我有同样的问题,请有人帮助我....

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 2016-11-12
    • 2016-07-13
    • 2021-03-21
    • 2023-02-16
    • 2020-10-14
    相关资源
    最近更新 更多