SQL 比较运算符 Python) 我无法通过 python 文件对 SQL 查询执行比较运算符

问题描述

sql = "WITH comparing_price AS (SELECT CODE,DATE,OPEN,high,low,close,volume,"\
                "LEAD(OPEN,1) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd1_open',2) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd2_open',3) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd3_open',"\
                "LEAD(high,1) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd1_high',2) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd2_high',3) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd3_high',4) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd4_high',"\
                "LEAD(low,1) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd1_low',2) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd2_low',3) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd3_low',"\
                "LEAD(close,1) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd1_close',2) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd2_close',3) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd3_close',"\
                "LEAD(volume,1) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd1_volume',2) OVER (PARTITION BY CODE ORDER BY DATE) AS 'd2_volume',"\
                "AVG(close) OVER (PARTITION BY CODE ORDER BY DATE,DATE ROWS BETWEEN 2 preceding AND 2 following) AS 'd2_MA5',DATE ROWS BETWEEN 7 preceding AND 2 following) AS 'd2_MA10',DATE ROWS BETWEEN 17 preceding AND 2 following) AS 'd2_MA20',DATE ROWS BETWEEN 57 preceding AND 2 following) AS 'd2_MA60',DATE ROWS BETWEEN 117 preceding AND 2 following) AS 'd2_MA120',"\
                "STD(close) OVER (PARTITION BY CODE ORDER BY DATE,DATE ROWS BETWEEN 17 preceding AND 2 following) AS 'd2_std'"\
            "FROM daily_price)"\
        "SELECT * "\
        "FROM comparing_price"\
        "WHERE "\
            "volume > 1 AND d1_volume > 1 AND d2_volume > 1"
execute(sql)

然后我收到一条错误消息:

pyMysqL.err.ProgrammingError: 
(1064,"You have an error in your sql Syntax; 
check the manual that corresponds to your MariaDB server version for the right Syntax to use near 
'> 1 AND d1_volume > 1 AND d2_volume > 1' at line 1")

我认为问题与通过 execute() 发送比较运算符有关,因为在 Heidisql 中直接运行此查询时它工作正常。或者有什么其他想法为什么它可能不起作用?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)