如何基于sqlite中的特定列比较数据库表中的行,如使用for循环或if语句

2024-10-01 00:19:55 发布

您现在位置:Python中文网/ 问答频道 /正文

伙计们,我有一个数据库,我正试图在它上面写sql来从它的一个表中提取一些数据,temphhighf是这个表上的一列,所以我试图选择所有temphhighf值大于其上temphhighf值10倍的行,我在jupyter笔记本上使用数据库作为数据集,用python编写了FOR循环和if语句FOR,我得到了我所需要的,但是用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]

Tags: 数据数据库dfnewforsqliftemp
1条回答
网友
1楼 · 发布于 2024-10-01 00:19:55

您可以使用lag(),前提是您有一个列来对行进行排序-我假设id

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

相关问题 更多 >