MariaDB荒谬使用LAG函数

okxuctiv  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(146)

荒谬的事情发生了。有人能帮我一下吗?当我注解掉一些非逻辑部分时,结果会改变。截图在Navicat上提供。

SELECT 

(1=1) 
AND 
(
    (LAG(l) OVER (PARTITION BY ticker ORDER BY date) > 1 AND 1=1) 
OR (LAG(l) OVER (PARTITION BY ticker ORDER BY date) > 1 AND 1=1)
)

AS is_fs FROM `aggregates` WHERE YEAR(date) = 2016 AND ticker = 'GFF' ORDER BY is_fs DESC

结果为NULL。而注解 "(1=1)AND” 时,结果变为1。或者更糟糕的是,当我删除OR的第二部分(顺便说一句,与第一部分相同)时,结果再次变为1。或者最坏的:当我删除 “PARTITION BY ticker” 从“OR”的第一部分再次出现的结果。
怎么可能...我错过了什么?

u7up0aaq

u7up0aaq1#

仍然不知道原因,但将MariaDB更改为MySQL-8解决了这个问题,在尝试修复,备份重新安装,索引删除设置等之后。

相关问题