我有一个结构哈希:
{"time_period" => {product_id = val"}}
例如,
{"This Month" =>{2414=>12, 2601=>12, 2604=>6, 2624=>12, 2628=>12,
2647=>24, 2652=>6, 2659=>18, 2709=>24},
"Last Month" =>{511=>12, 2266=>12, 2414=>24, 2601=>12, 2607=>36, 2609=>60,
2611=>6, 2626=>36, 2647=>36, 2659=>18, 2699=>24, 2709=>12},
"Last 30 Days"=>{2414=>24, 2601=>12, 2604=>6, 2607=>12, 2609=>12, 2611=>6, 2624=>12,
2626=>12, 2628=>12, 2647=>36, 2652=>6, 2659=>24, 2699=>12, 2709=>24}}
我将其显示为一个表,其中时间段为列,每个product_id为一行,并带有来自散列的相应值。
如果用户想要按列排序该表#34;上个月"我该怎么做呢?所以我想要"上个月"数组位于表的顶部,然后是按其值排序的那些键。
我不想将其转换为数组,因为每个产品会有很多0值,如果我们增加时间段和产品,内存使用量会很大。
哈希是这样创建的:
overall_h = Hash.new
timeperiods.each do |t|
overall_h[t] = Order.customer_filter(customer_id)
.valid_order.group_by_order_products.sum_qty
end