我想知道是否有可能进行如下的查询。价值和平均值之间的差异(价值)
我有一个表,其中包含id
和value
。 Exapmle:
table EXAMPLE
|id | value |
| 1 | 65|
| 2 | 13|
| 3 | 22|
我想是使查询,返回一组这样的:
|id | value | average | difference|
| 2 | 13| 33.3| 20.3|
| 3 | 22| 33.3| 11.3|
是如何处理不同列中的问题?
还有一个问题: 如何在只设置值,是小于或伟大然后均包括
SELECT id,
value,
(SELECT AVG(value) FROM EXAMPLE) as average
having
value < average.
我使用having
代替where
的原因是选择where
在执行前因此我不能使用平均值(平均值在查询执行的选择阶段计算)。
我还怀疑我不仅计算一次AVG(值),而且计算表中的每一行。 对吗?如果我是,那很糟糕,它肯定不是我想要的。
请为我介绍一下子查询的MySQL执行顺序或共享此主题的一些链接。 预先感谢您。
我很可怕的遗憾。这是来自问题的第一个版本。编辑。尽管如此,我认为这不是问题中的重要问题。我希望我能够被理解。 – xolodec