sqldf在使用子查询时出错

时间:2017-05-25 16:26:32

标签: mysql r sqldf

我试图通过工作日获得移动平均线,因为我使用sql查询。 数据框是

data

和sqldf代码:

ma_782 =  sqldf("SELECT  
         t1.Id_indicator,   t1.Hour,  
 (  
  select SUM(t2.Value) / COUNT(t2.Value)                                 
    FROM  max_value_782 AS t2  
    WHERE   
        t1.Hour = t2.Hour and  
             weekdays.Date(t1.Date) = weekdays.Date(t2.Date)  
            and DATEDIFF(t1.Date, t2.Date) BETWEEN 1 AND 42        
  ) AS 'MA_by_weekday'  
FROM max_value_782 AS t1  ;")  

这会产生错误

  

rsqlite_send_query中的错误(conn @ptr,statement):near"(&#34 ;: syntax error

虽然它只是简单的选择:

sqldf("select * from max_value_782")

1 个答案:

答案 0 :(得分:2)

考虑替换d MMMM uuuu方法,因为此语法假设表限定符。因为默认情况下sqldf使用SQLite方言,所以使用weekdays.来比较工作日。此外,单引号用于字符串文字,而不是用于包含表/字段标识符。如果不使用保留字/特殊字符,SQLite可以使用括号,反引号或双引号,或者不使用。

strftime