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