2014-10-31 108 views
0

我有一个SQLite数据库表GOALS_SCOREDgender,goalRanknumGoalsScored如何根据另一列的值更新“职级”列的值?

numGoalsScored被设置,但我想设置goalRankPER GENDER到1,2,3等

因此,我希望2个值是goalRank 1(对于M和F)。就目前而言,假定没有两个男孩有相同的目标,女孩也一样。用正确的值更新该列的SQL是什么?

+2

您可能需要发布预期结果的相关样本数据。 – 2014-10-31 16:22:39

+3

这听起来不像是你'存储'的东西,而是计算'即时' – Strawberry 2014-10-31 16:22:46

+0

我听到你,但我想存储它.... – fandang 2014-10-31 16:23:47

回答

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)。