2014-10-06 5 views
2

Очень просто,MYSQL Выбор записей больше чем или первый

У меня есть таблица, как:

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 

Возможно ли это?

ответ

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 
+0

Простой и чистый. Life saver! – Bergkamp

Смежные вопросы