Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何计算由“启动”驱动的未启动选项;竖起大拇指;不返回数组的gem_Sql_Ruby On Rails_Ruby_Rails Models - Fatal编程技术网

Sql 如何计算由“启动”驱动的未启动选项;竖起大拇指;不返回数组的gem

Sql 如何计算由“启动”驱动的未启动选项;竖起大拇指;不返回数组的gem,sql,ruby-on-rails,ruby,rails-models,Sql,Ruby On Rails,Ruby,Rails Models,投票有很多问题,问题有很多选项,选项 我试图通过SQL计算未引导的选项,而不返回数组 这项工作 [22] pry(main)> unvoted = Option.tally.where('question_id = ?', 3).having('COUNT(votes.id) = 0') Option Load (0.3ms) SELECT options.*, COUNT(votes.id) AS vote_count FROM "options" LEFT OUTER JOIN

投票
有很多
问题,问题
有很多
选项,选项

我试图通过SQL计算未引导的选项,而不返回数组

这项工作

[22] pry(main)> unvoted = Option.tally.where('question_id = ?', 3).having('COUNT(votes.id) = 0')
  Option Load (0.3ms)  SELECT options.*, COUNT(votes.id) AS  vote_count FROM "options" LEFT OUTER JOIN votes ON options.id = votes.voteable_id WHERE (question_id = 3) GROUP BY options.id, options.content, options.question_id, options.created_at, options.updated_at HAVING COUNT(votes.id) = 0 ORDER BY vote_count DESC
但是当我这样做的时候,我得到了一个错误

[23] pry(main)> unvoted_count = Option.tally.where('question_id = ?', 3).having('COUNT(votes.id) = 0').count
   (0.5ms)  SELECT COUNT(options.*, COUNT(votes.id) AS vote_count) AS count_options_all_count_votes_id_as_vote_count, options.id, options.content, options.question_id, options.created_at, options.updated_at AS options_id_options_content_options_question_id_options_created_at_options_updated_at FROM "options" LEFT OUTER JOIN votes ON options.id = votes.voteable_id WHERE (question_id = 3) GROUP BY options.id, options.content, options.question_id, options.created_at, options.updated_at HAVING COUNT(votes.id) = 0  ORDER BY vote_count DESC
ActiveRecord::StatementInvalid: SQLite3::SQLException: near "*": syntax error: SELECT COUNT(options.*, COUNT(votes.id) AS vote_count) AS count_options_all_count_votes_id_as_vote_count, options.id, options.content, options.question_id, options.created_at, options.updated_at AS options_id_options_content_options_question_id_options_created_at_options_updated_at FROM "options" LEFT OUTER JOIN votes ON options.id = votes.voteable_id WHERE (question_id = 3) GROUP BY options.id, options.content, options.question_id, options.created_at, options.updated_at HAVING COUNT(votes.id) = 0  ORDER BY vote_count DESC
from /usr/lib/ruby/gems/2.3.0/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `initialize'
我也试过这个,我不知道为什么忽略条件,为什么

[14] pry(main)> Option.count(:conditions => "question_id = 3 AND HAVING COUNT(votes.id) = 1")
   (0.3ms)  SELECT COUNT(*) FROM "options"
3
这也忽略了条件

Option.count(:conditions => "question_id = 3 AND COUNT(votes.id) = 1")