我正在尝试构建一个网络应用程序来分析有关电影的调查结果,这些结果由管理员手动上传到系统。结果根据调查的日期上传。调查了许多不同的类别,每个受访者为每个类别、每部电影输入一个数字回答(从 1 到 7)。我已经设置了系统,以便在电影索引页面上,您可以选择一部电影,它会将您带到网站上该特定电影的放映页面。我想做的是让系统在表格中仅显示基于每个字段日期的调查结果的平均值(按类别)。
管理员输入的示例原始结果:
Field Date: 03/23/2013, Interesting:5, Trendy: 6, Funny: 3
Field Date: 03/23/2013, Interesting:6, Trendy: 6, Funny: 7
Field Date: 03/29/2013, Interesting:2, Trendy: 4, Funny: 3
我想在表中输出的示例:
Field Date: 03/23/2013, Interesting:5.5, Trendy: 6, Funny: 5
Field Date: 03/29/2013, Interesting:2, Trendy: 4, Funny: 3
这是我的架构:
create_table "movies", :force => true do |t|
t.string "name"
t.string "category"
t.date "field"
end
create_table "results", :force => true do |t|
t.string "name"
t.date "field"
t.integer "movie_id"
t.integer "interesting"
t.integer "trendy"
t.integer "funny"
end
这是我的电影放映页面中的表格:
<% @results.order('field DESC').each do |resultz| %>
<tr class="tableline" >
<td class="tableline"><%= resultz.field %></td>
<td class="tableline"><%= resultz.interesting %></td>
<td class="tableline"><%= resultz.trendy %></td>
<td class="tableline"><%= resultz.funny %></td>
</tr>
目前显示管理员上传的所有原始值。我想我需要使用 average 方法和 :group 选项,但是由于某种原因,当我尝试使用它时,它总是给我错误。我认为 DATE_TRUNC 不起作用,因为我使用的是 sqlite3,但我不确定这是否是正确的推理。
任何帮助将不胜感激(甚至链接到相应的文档)!谢谢!