如何在整个数据集中查找 column1 值超过平均 column1 值两倍的所有数据行?
Posted
技术标签:
【中文标题】如何在整个数据集中查找 column1 值超过平均 column1 值两倍的所有数据行?【英文标题】:How to find all the data rows with column1 values more than twice the average column1 value across the dataset? 【发布时间】:2021-07-09 01:20:44 【问题描述】:我正在尝试使用下面的代码查找所有数据行的 column1 值超过数据集中 column1 平均值的两倍,但它似乎不是正确的数据。 代码如下:
select *,column1 over() from databasetest.Table1
where column1 > (select 2*avg(column1) from databasetest.Table1)
这是示例输出
如您所见,column1 的值仍然小于整个数据集的 column1 平均值的两倍。我认为这应该检索超过数据集中平均 column1 值两倍以上的列。 我做错了什么还是我误解了什么? 任何帮助将不胜感激
【问题讨论】:
根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。 【参考方案1】:如果我理解正确,你可以使用窗口函数:
select *
from (select t1.*, avg(column1) over () as avg_column1
from databasetest.Table1 t1
) t1
where t1.column1 > 2 * avg_column1;
【讨论】:
感谢您宝贵的时间,您知道为什么我的代码不起作用吗? @lili 。 . .您的代码在语法上不正确。以上是关于如何在整个数据集中查找 column1 值超过平均 column1 值两倍的所有数据行?的主要内容,如果未能解决你的问题,请参考以下文章