我有一个来自Postgresql的SELECT查询,它返回的结果如下所示:
brand | model| firmware | direction | mbps
-------+------+----------+-----------+------
Cisco | 7602 | 7.2 | up | 283
Cisco | 7602 | 7.3 | up | 192
Cisco | 7602 | 7.2 | down | 200
Cisco | 7602 | 7.3 | down | 107
Cisco | 7602 | 7.2 | bi | 249
Cisco | 7602 | 7.3 | bi | 151 我希望在一个很好的嵌套散列中得到结果,该哈希将对品牌、模型、固件进行分组,然后显示每个方向的mbps值。我想展示嵌套散列的示例,但现在有点不知所措,甚至不知道如何正确地构造它。
当前,我在运行该查询时得到的哈希如下所示:
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.2", "direction"=>"up", "mbps"=>"283"}
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.3", "direction"=>"up", "mbps"=>"192"}
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.2", "direction"=>"down", "mbps"=>"200"}
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.3", "direction"=>"down", "mbps"=>"107"}
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.2", "direction"=>"bi", "mbps"=>"249"}
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.3", "direction"=>"bi", "mbps"=>"151"}我希望我的问题有意义。
发布于 2014-06-14 01:09:29
你可以像这样建立分组
rows = [{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.2", "direction"=>"up", "mbps"=>"283"},
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.3", "direction"=>"up", "mbps"=>"192"},
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.2", "direction"=>"down", "mbps"=>"200"},
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.3", "direction"=>"down", "mbps"=>"107"},
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.2", "direction"=>"bi", "mbps"=>"249"},
{"brand"=>"Cisco", "model"=>"7602", "firmware"=>"7.3", "direction"=>"bi", "mbps"=>"151"}]
data = {}
rows.each do |row|
data[row['brand']] ||= {}
data[row['brand']][row['model']] ||= {}
data[row['brand']][row['model']][row['firmware']] ||= {}
data[row['brand']][row['model']][row['firmware']][row['direction']] = row['mbps']
end
puts data产出:
{"Cisco"=>{"7602"=>{"7.2"=>{"up"=>"283", "down"=>"200", "bi"=>"249"}, "7.3"=>{"up"=>"192", "down"=>"107", "bi"=>"151"}}}}https://stackoverflow.com/questions/24215602
复制相似问题