У меня есть таблица SQLite, подобная следующей:
gary_ages
====================
Name | Age
--------------------
Gary 1 | 20
Gary 2 | 50
Gary 3 | 35
Gary 4 | 71
Gary 5 | 50
Gary 6 | 4
Gary 7 | 50
Gary 8 | 65
Gary 9 | 91
Gary 10 | 50
Gary 11 | 0
Вы можете видеть, что Гари 2, 5, 7 и 10 50 лет.
Я хотел бы сделатьвыбор, начиная с конца таблицы, который содержит 3 Гари, возраст которых составляет 50 лет. В этом случае этот выбор будет варьироваться от Гари 5 до Гари 11.
Выбор содержит 3Гари в возрасте 50 лет.
Это будет не , включая Гари 2, так как тогда в нем будет 4 Гари в возрасте 50 лет, а мне нужно только 3 *. 1016 *
Выбор включает , включая Гари 11, потому что Гари 11 находится в конце таблицы, где начинается выбор.
выбор включает всех Гари в возрасте от 5 до 11, хотя не всем из них 50 лет.
выбор не включает Гари3 и 4, потому что в подборке уже 3 Гари в возрасте 50 лет, и они больше не заботятся о Гари.
Используя SQLite через Python, я могу сделать это довольно легко, выбрав последнюю строку таблицы, проверив, равняется ли общее число 50-х 3, и либо выбрав следующую строку, либо вернув текущий выбор в виде списка Python, в зависимости. Но в идеале я хотел бы ограничить это миром SQLite.
Есть ли простое решение?
SELECT * FROM gary_ages WHERE ...