Как запустить функцию RANK () на модели - PullRequest
0 голосов
/ 26 марта 2019

Как я могу запустить функцию ранга , чтобы сгенерировать атрибут для данной модели сиквелиза?

Например, для данной модели:

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?

1 Ответ

1 голос
/ 26 марта 2019

Вы можете использовать функцию Sequelize Literal следующим образом -

attributes: [
          'id', 'rating',
          [Sequelize.literal('(RANK() OVER (ORDER BY rating DESC))'), 'rank']
    ]

для создания новых атрибутов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...