Я пытаюсь удалить строки в SQLite на основе количества и * дней.
Вместо того, чтобы писать несколько команд SQL, как это:
DELETE * FROM result WHERE Count = 1 AND ("min(_time)" < strftime('%s','now', '-7 day'));
DELETE * FROM result WHERE Count = 2 AND ("min(_time)" < strftime('%s','now', '-14 day'))
DELETE * FROM result WHERE Count = 3 AND ("min(_time)" < strftime('%s','now', '-28 day'));
и так далее ...
Я пытаюсь найти способ использовать цикл for, где он увеличивает счетчик и число * дней
Я пытался это сделать:
data = c1.execute('''SELECT * FROM result;''')
for row in data:
Count = row[1]
days = row[7]
c1.execute('''DELETE * FROM result WHERE Count = ? AND ("min(_time)" < strftime('%s','now', '-? day'));''', (Count, days))
Я получаю IndexError: tuple index out of range
под days = row[7]
.
Я посмотрел ошибка и изменил число, посмотрим, исправит ли это, все еще indexerror.
Пример данных таблицы результатов выглядит следующим образом: "select *из результата; "Столбцы, экспортированные из Splunk: src_ip, 'min (_time)', Count
183.78.180.27|1542266993|1
185.189.150.42|1542246169|1
185.189.150.61|1542271436|1
2002:8672:d515::8672:d515|1537536602|3
150.135.165.114|1537288499|3
Правильно ли я понимаю концепцию сценария?Любые предложения по indexerror?Спасибо!