У меня есть простая таблица:
file_size file_id file_time
1 1 19
2 2 20
3 3 21
4 4 22
5 5 23
Я хочу найти такой элемент, чтобы все элементы с меньшим значением file_time имели сумму file_size в предопределенном диапазоне.Я написал следующий запрос:
SELECT * FROM test_table AS D0 WHERE
(SELECT TOTAL(file_size) FROM test_table AS D1 WHERE
D1.file_time <= D0.file_time ORDER BY file_id)
BETWEEN 1 AND 9
Этот запрос дает правильные результаты:
1 1 19
2 2 20
3 3 21
Но этот запрос не работает, если необходимые элементы имеют то же поле file_time:
file_size file_id file_time
1 1 20
2 2 20
3 3 20
4 4 20
5 5 20
Желаемый результат для этих данных:
1 1 20
2 2 20
3 3 20
Поле file_id уникально.Что не так в моем SQL-запросе?
Код для создания тестовой таблицы:
CREATE TABLE test_table (file_size INT, file_id INT, file_time INT)
INSERT INTO test_table VALUES(1,1,20)
INSERT INTO test_table VALUES(2,2,20)
INSERT INTO test_table VALUES(3,3,20)
INSERT INTO test_table VALUES(4,4,20)
INSERT INTO test_table VALUES(5,5,20)