MYSQL选择大于OR的记录

时间:2014-10-06 07:31:53

标签: mysql aggregate-functions

很简单,

我有一张表:

ID,
Name,
Key,
Score

我想从表格中选择分数大于或等于0.5或者只有最高分数的所有键(如果没有')。

数据示例:

1, Messi, AAA, 0.8
2, Messi, AAA, 0.7
3, Ronaldo, BBB, 0.1
4, Ronaldo, BBB, 0.3
5, Ronaldo, BBB, 0.4
6, Rooney, CCC, 0.9
7, Rooney, CCC, 0.4
8, Rooney, CCC, 0.2

我希望结果是:

1, AAA, 0.8
2, AAA, 0.7
3, BBB, 0.4
6, CCC, 0.9

这可能吗?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

SELECT
    tbl.*
FROM
    table1 AS tbl
WHERE
    tbl.Score>0.5
    OR 
    (
        SELECT
            MAX(t.Score)
        FROM
            table1 AS t
        WHERE 
            t.Name=tbl.Name
            AND t.[Key]=tbl.[Key]
    ) = tbl.Score

这会得到这个结果:

1   Messi   AAA 0.8
2   Messi   AAA 0.7
5   Ronaldo BBB 0.4
6   Rooney  CCC 0.9