我希望能够根据特定年龄范围对用户进行分组。然后得到他们可以用来绘制条形图的计数。 ë
这个陈述能够绘制他们年龄的图表,但它是每个用户的年龄。这是我想要消除的。如果您想知道我正在使用chartkick制作图表。
<%= bar_chart User.group("date_trunc('year', age(dob))").count, {library: {title: "User's Age"}} %>
我希望将年龄返回为:
<%= bar_chart [["Below 10", users_with_ages_lying_in this_range.count],
["10-19", users_with_ages_lying_in this_range.count],
["20-29", ],
["30-39", ],
["40-49", ],
["above 50",]], {library: {title: "User's Age"}}
%>
简而言之,我希望这行代码User.group("date_trunc('year', age(dob))").count
仅返回给定年龄段的用户。
如果您有任何更好的想法,我将不胜感激。 我正在使用postgres DB
答案 0 :(得分:1)
我有类似的需要来查找范围内的事件。
我在模型上创建了一个类方法:
def self.in_range(start_range, end_range)
where "((start_date <= ?) and (end_date >= ?))", end_range, start_range
end
使用如下:
events.in_range(start_range, end_range).order('start_date ASC')
我确信可以使用age而不是start_date和end_date创建类似的。