Mar*_*uch 2 sql-server sequelize.js
如何运行排名函数以在给定的续集模型上生成属性?
例如,给定模型:
Players.init(
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false
},
rating: type: DataTypes.FLOAT
},
{ sequelize }
)
Run Code Online (Sandbox Code Playgroud)
我想rank在运行时获得一个属性Players.getAll({ rank: rating })。这将生成类似于以下内容的 SQL:
SELECT id, rating, RANK() OVER (ORDER BY rating DESC) as rank FROM players
Run Code Online (Sandbox Code Playgroud)
我将如何使用sequelize来做到这一点?
您可以使用 Sequelize Literal Function,如下所示 -
attributes: [
'id', 'rating',
[Sequelize.literal('(RANK() OVER (ORDER BY rating DESC))'), 'rank']
]
Run Code Online (Sandbox Code Playgroud)
创建新属性。
| 归档时间: |
|
| 查看次数: |
1923 次 |
| 最近记录: |