SQL-запрос, сравнивающий атрибут в нескольких кортежах на основе значений другого атрибута в отношении

Я только что сделал этот пост некоторое время назад: SQL-запрос относительно суммы вхождений для нескольких строк

Таблица ниже такая же, но с небольшой модификацией:

                    Test

    +--------+--------+--------+--------+
    |  Name  |  Date  |Location| Score  |
    +--------+--------+--------+--------+
    | Steven |03-05-12| 120000 |   78   |
    +--------+--------+--------+--------+
    | James  |04-09-11| 110000 |   67   |
    +--------+--------+--------+--------+
    | James  |06-22-11| 110000 |   58   |
    +--------+--------+--------+--------+
    |  Ryan  |10-11-13| 250000 |   62   |
    +--------+--------+--------+--------+
    |  Ryan  |12-19-13| 180000 |   95   |
    +--------+--------+--------+--------+

По сути, мне нужен запрос, чтобы выбрать имена людей, которые прошли несколько тестов и получили более низкий балл в следующий раз.

Например, он выбрал бы Джеймса, но не Райана, потому что он получил более высокий балл во второй раз.

Спасибо

1 ответ

Решение
SELECT DISTINCT a.name
FROM test AS a 
JOIN test AS b 
  ON a.name = b.name 
 AND a.date > b.date 
 AND a.score < b.score

SQL Fiddle

Другие вопросы по тегам