【发布时间】: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