MySQl:如何在排名子查询中排除行

时间:2010-08-04 02:32:02

标签: mysql select rank

我有一个mySQL语句,可以选择一些数据并进行排名。

我希望选择'Bob'的记录,例如,选择但不包括在排名中。所以,我需要在主select语句中返回Bob的行,但是我需要Bob从处理排名的子SELECT中排除。我需要鲍勃的数据,但他不应该计入排名。

我在AND t.name !='Bob'之后尝试WHERE x.category = t.category但是,这不起作用。

SELECT     t.name,
           t.category,
           t.score1,
           t.score2,
    (SELECT COUNT(*) 
    FROM my_table x
    WHERE x.category = t.category
    AND (x.score1 + x.score2) >= (t.score1 + t.score2)
    ) AS rank 

    FROM my_table t ORDER BY rank ASC

有什么建议吗?

谢谢。

-Laxmidi

1 个答案:

答案 0 :(得分:0)

您应该使用AND x.name != 'Bob'代替t.name