#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