sql - 如何使用 Vertica AVG [分析]
问题描述
我有一个 Vertica 表,如下例所示:
我想编写 SQL 查询,计算每个站点的“平均”速率,但 shell 只计算其速率高于站点平均速率的设备。
所以我的查询结果应该是
由于站点 1 的平均费率为 3,因此我们只需计算 4 和 5,结果为 4.5。由于站点 2 的平均速率为 8,因此我们只需计算 8 和 9,结果为 8.5。
这个问题的查询是什么?谢谢。
解决方案
我想你想要:
select site, avg(rate)
from (select t.*, avg(t.rate) over (partition by t.site) as avg_rate
from t
) t
where rate > avg_rate
group by site;
要在子句中使用窗口函数结果where
,您需要一个子查询。
推荐阅读
- python - 如何从python pyqt中的不同类调用函数
- java - 在 Java 中调用类中的方法
- c++ - 每个包含 3 个元素的数组中最近点的索引
- python - Python:如何读取 csv 并循环清理数据
- json - 在Java中有效地分组和创建Json
- android - 如何在 Android Java 中使用 onclicklistener 获取按钮文本?
- python - 如何用“”替换“,”?如何删除值中的逗号?
- python-3.x - TypeError:“float”对象不能解释为整数:有办法吗?
- android - 单击两次底部导航栏时,RecyclerView 不显示项目
- c++ - 如何通过 UDP 发送多播数据 - 使用全局地址的 IPv6