Как я могу сравнить строки в таблице базы данных на основе определенного столбца в sql sqlite, например, с помощью цикла for или оператора if

#python #sql #sqlite #dataset #subquery

#python #sql #sqlite #набор данных #подзапрос

Вопрос:

Ребята, у меня есть эта база данных, в которую я пытаюсь написать sql, чтобы извлечь некоторые данные из одной из ее таблиц, TempHighF — это столбец в этой таблице, поэтому я пытаюсь выбрать все строки, значения TempHighF которых в 10 раз превышают значение TempHighF над ним, я написал это с помощью цикла FOR иоператор if for в python использует базу данных в качестве набора данных в моем ноутбуке jupyter, и я получил именно то, что мне нужно, однако написание его на SQL является проблемой, пожалуйста, мне нужна помощь. df_new вот чего я хочу достичь в SQL

 very_high_temp=[]
for i in range(1, 1319):
    if df['TempHighF'].loc[i]-df['TempHighF'].loc[i-1]>=10:
        very_high_temp.append(i)
df_new = df.loc[very_high_temp]
 

Ответ №1:

Вы можете использовать lag() , при условии, что у вас есть столбец для упорядочивания строк — я предположил id :

 select *
from (
    select t.*, lag(TempHighF) over(order by id) as lagTempHighF
    from mytable t
) t
where TempHighF - lagTempHighF >= 10