Tôi đang cố gắng để liệt kê số lượng người dùng theo độ tuổi tầm:Nhóm Người dùng bởi Tuổi cấp ở ruby
Range : #Users
10-14 : 16
15-21 : 120
22-29 : 312
30-40 : 12131
41-70 : 612
71-120 : 20
Tôi đã nghĩ đến việc tạo ra một mảng tĩnh của băm:
AGE_RANGES = [
{label:"10 - 14", min:10, max:14},
{label:"15 - 21", min:15, max:21},
{label:"22 - 29", min:22, max:29},
{label:"30 - 40", min:30, max:40},
{label:"41 - 70", min:41, max:70},
{label:"71 - 120", min:71, max:120}
]
và sau đó sử dụng nó cho bộ lọc tìm kiếm của tôi, cũng như cho truy vấn của tôi. Nhưng, tôi không thể nghĩ ra một cách để có được hiệu suất cao nhất từ nó.
phương pháp của tôi trong mô hình của tôi chỉ nhóm theo độ tuổi:
def self.group_by_ageRange(minAge, maxAge)
query = User.group("users.age")
.where("users.age BETWEEN minAge and maxAge ")
.select("users.age,
count(*) as number_of_users")
end
Bất kỳ lời đề nghị?
http://stackoverflow.com/questions/232387/in-sql-how-can-you-group-by-in-ranges – InternetSeriousBusiness