小编Ste*_*ith的帖子

将Ruby哈希一次将多个键设置为相同的值

我正在尝试创建一个巨大的哈希,其中有很多键,但只有几个值。

到目前为止,我有这样的...

du_factor = {
  "A" => 1,
  "B" => 1,
  "C" => 1,
  "D" => 2,
  "E" => 2,
  "F" => 2,
Run Code Online (Sandbox Code Playgroud)

...等等,等等等等,持续不断甚至超过您甚至想知道的时间。在不完全翻转其结构的情况下,创建此哈希的更短,更优雅的方法是什么?

编辑:嗨,我意识到有一种比给出的答案更简单,更优雅的方法。只需声明一个空哈希,然后使用所需键声明一些数组,然后使用for语句将其插入到数组中,如下所示:

du1 = ["A", "B", "C"]
du2 = ["D", "E", "F"]

dufactor = {}

for i in du1
  dufactor[i] = 1
end

for i in du740
  dufactor[i] = 2
end
Run Code Online (Sandbox Code Playgroud)

...但是没有人建议让我,极端的Ruby n00b,这一事实认为我一定不应该这样做。性能问题?

ruby hash

5
推荐指数
1
解决办法
4089
查看次数

使用窗口函数计算百分位数

我知道你可以使用窗口函数获得一部分数据的平均值,总数,最小值和最大值.但是,有可能得到中位数,或第25百分位而不是窗函数的平均值?

换句话说,我如何重写这个以获得每个区域内的ID和第25或第50百分位销售数字而不是平均值?

SELECT id, avg(sales)
    OVER (PARTITION BY district) AS district_average
FROM t
Run Code Online (Sandbox Code Playgroud)

postgresql aggregate-functions postgresql-9.5

1
推荐指数
1
解决办法
3573
查看次数