如何显示平均值并在同一查询中像条件一样使用它?
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
我正在使用一个数据库,我需要显示一个城市中比平均年龄大的人的年龄与平均年龄的比较。我的代码显示了比平均年龄大的人......但我无法在每一行中显示所有人的平均值(它总是相同的数字)。
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