如何显示平均值并在同一查询中像条件一样使用它?

How to show the average and use it like condition in the same query?

我正在使用一个数据库,我需要显示一个城市中比平均年龄大的人的年龄与平均年龄的比较。我的代码显示了比平均年龄大的人......但我无法在每一行中显示所有人的平均值(它总是相同的数字)。

SELECT name, age FROM people
    WHERE age > (SELECT AVG(age) FROM people);

我需要展示这样的东西:

name     age     average
Mick      18        17.5
Sarah     25        17.5
Joe       38        17.5

任何帮助,请。

您可以编写相同的子查询来计算 select 列表中的平均年龄:

SELECT name, age, (SELECT AVG(age) FROM people) average FROM people
    WHERE age > (SELECT AVG(age) FROM people);

或者如果您的数据库允许 window 函数,您可以这样做:

select name,age,average from
(
  SELECT name, age, AVG(age) over() average FROM people
)t where age>average