【问题标题】:How to find all the data rows with column1 values more than twice the average column1 value across the dataset?如何在整个数据集中查找 column1 值超过平均 column1 值两倍的所有数据行?
【发布时间】: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 值两倍以上的列。 我做错了什么还是我误解了什么? 任何帮助将不胜感激

【问题讨论】:

  • 根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。

标签: sql select google-bigquery average aggregate-functions


【解决方案1】:

如果我理解正确,你可以使用窗口函数:

select *
from (select t1.*, avg(column1) over () as avg_column1
      from databasetest.Table1 t1
     ) t1
where t1.column1 > 2 * avg_column1;

【讨论】:

  • 感谢您宝贵的时间,您知道为什么我的代码不起作用吗?
  • @lili 。 . .您的代码在语法上不正确。
猜你喜欢
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
  • 2021-09-20
  • 1970-01-01
相关资源
最近更新 更多