2017-05-30 89 views
0

我不知道为什么我得到语法错误,根据this question一切都应该没问题。我找不到一种方法来执行window function(postgres查询返回多个列GROUPED BY个人列),这就是我使用原始SQL的原因。使用原始SQL SELECT语句时出现语法错误

我对Postgres仍然很陌​​生,但我认为它可能与消毒有关,但我也不知道该怎么去做。任何帮助将不胜感激,这里是我的代码:

module TasksTestQuery 

    def self.call 

    query = "SELECT user_id, username, date, SUM(user_id) AS total_work, SUM(duration) AS total_duration OVER (PARTITION BY user_id) FROM tasks" 

    ActiveRecord::Base.connection.find_by_sql(query) 

    end 
end 

我得到确切的错误是:

ActiveRecord::StatementInvalid 
PG::SyntaxError: ERROR: syntax error at or near "(" LINE 1: SELECT user_id, username, date, SUM(user_id) AS total_work, SUM(duration) AS total_duration OVER (PARTITION BY user_id) FROM tasks 

回答

0

应该

SUM(duration) OVER (PARTITION BY user_id) AS total_duration 
+0

非常感谢,这不是工作 –

+0

这是宝贵的小信息。 –

+0

错误在我身边,这解决了它,非常感谢。 –