gpt4 book ai didi

SQL分组步骤

转载 作者:行者123 更新时间:2023-12-02 00:55:32 26 4
gpt4 key购买 nike

我在 SAS 中使用 SQL。

我正在对一个连续变量(离散化)执行一个带有 GROUP BY 子句的 SQL 查询,我希望它聚合更多。我不确定这是否清楚,所以这里有一个例子。

这是我的查询:

SELECT CEIL(travel_time) AS time_in_mn, MEAN(foo) AS mean_foo
FROM my_table
GROUP BY CEIL(travel_time)

对于 travel_time 的每个不同值,这将为我提供 foo 的平均值。多亏了 CEIL() 函数,它将按分钟而不是秒进行分组(travel_time 可以采用 14.7(分钟)等值)。但是我希望能够以 5 分钟为一组进行分组,例如,这样我就有了类似的东西:

time_in_mn  mean_foo
5 4.5
10 3.1
15 17.6
20 12

(当然,mean(foo) 应该在整个区间内完成,所以对于 time_in_mn = 5mean_foo 应该是foo 的平均值,其中 travel_time 在 (0,1,2,3,4,5) )

我怎样才能做到这一点?

(很抱歉,如果答案很容易找到,我唯一能想到的搜索词是group by step,它给了我很多关于 SQL 的“逐步教程”... )

最佳答案

“天花板到台阶”(或舍入,或地板,就此而言)的一个常见习语是除以台阶、天花板(当然,或圆形,或地板),然后再乘以它。这样,如果我们以 12.4 为例:

  1. 除法:12.4/5 = 2.48
  2. 上限:2.48 变为 3
  3. 相乘:3 * 5 = 15

SQL 形式:

SELECT   5 * CEIL(travel_time / 5.0) AS time_in_mn,
MEAN(foo) AS mean_foo
FROM my_table
GROUP BY 5 * CEIL(travel_time / 5.0)

关于SQL分组步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com