sql-server - 如何在模型上运行 RANK() 函数
问题描述
如何运行rank 函数以在给定的 sequelize 模型上生成属性?
例如,给定模型:
Players.init(
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false
},
rating: type: DataTypes.FLOAT
},
{ sequelize }
)
我想rank
在运行时获得一个属性Players.getAll({ rank: rating })
。这将生成类似于以下内容的 SQL:
SELECT id, rating, RANK() OVER (ORDER BY rating DESC) as rank FROM players
我将如何使用续集来做到这一点?
解决方案
您可以使用 Sequelize Literal Function 如下 -
attributes: [
'id', 'rating',
[Sequelize.literal('(RANK() OVER (ORDER BY rating DESC))'), 'rank']
]
创建新属性。
推荐阅读
- java - Flash 属性不适用于 https - 适用于 http
- c - Execvp 与“ls -l | wc”一起工作,但与“ls -l | wc”一起失败
- javascript - mobx 存储中未定义的数组长度
- ruby-on-rails - 在表单嵌套模型中销毁记录而不是更新
- javascript - 如何渲染存储在属性下的组件
- sql - 触发器在运行时将所有其他插入的值转换为 null
- java - Java VTD-XML 和 XPath:在找到的部分使用 XPath
- c++ - 在 Visual Studio 2017 中编译 .cpp 文件
- android - 按原产国查找应用程序 - Google Play 商店
- if-statement - 设置条件来验证当月的第 20 天是否存在然后做某事,否则转到下一个工作日