【问题标题】:Error while executing SQL query on database 'WEATHER': near "(": syntax error在数据库“天气”上执行 SQL 查询时出错:“(”附近:语法错误
【发布时间】:2020-11-23 16:52:28
【问题描述】:

我在 sql 上有这个任务,我必须根据表中行之间的差异从我的数据库中的表中选择一些特定的行,但是在数据库“天气”上执行 SQL 查询时我不断收到错误:靠近“( “:语法错误..请问我做错了什么,任何帮助将不胜感激。

SELECT
    *
    ,LAG(TempHighF,1,0) OVER(ORDER BY Date) AS previousTempHigh
FROM
    weatherdata
WHERE
    TempHighF - previousTempHigh >= 10;

【问题讨论】:

  • 我有版本 3.30.0 @forpas
  • 检查我的答案。

标签: sql sqlite window-functions


【解决方案1】:

您不能使用列previousTempHigh,它实际上是WHERE 子句中的别名窗口函数。
使用子查询:

SELECT *
FROM (
  SELECT *, LAG(TempHighF,1,0) OVER(ORDER BY Date) AS previousTempHigh
  FROM weatherdata
)  
WHERE TempHighF - previousTempHigh >= 10;

查看简化的demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-26
    • 1970-01-01
    • 2021-04-28
    • 2018-04-10
    • 2013-02-27
    相关资源
    最近更新 更多