如何更新" rank"列的值是否基于另一列的值?

时间:2014-10-31 16:19:19

标签: sql database sqlite

我有一个SQLite数据库表GOALS_SCORED,其中包含gendergoalRanknumGoalsScored列。

已设置numGoalsScored,但我想将goalRank PER GENDER 设置为1,2,3等。

所以我想要2个goalRank 1的值(对于M和F)。就目前而言,假设没有2个男孩拥有相同的目标#,女孩则相同。使用正确的值更新该列的SQL是什么?

1 个答案:

答案 0 :(得分:2)

UPDATE goals_scored SET goalRank = (
  SELECT count(*) FROM goals_scored AS i WHERE 
    i.numGoalsScored > goals_scored.numGoalsScored AND
    i.gender = goals_scored.gender
) + 1;

是一种方式。 O(n ^ 2)虽然。