练习说明:
马表有以下列:
ID - 整数,主键
RegisteredName - 可变长度字符串
Breed - 可变长度字符串
高度 - 小数
出生日期 - 日期
编写一条 SELECT 语句,仅选择高于平均身高的马匹的注册名称和身高。按高度对结果进行排序(升序)。
提示:使用子查询来查找平均高度。
这是我写的:
SELECT RegisteredName, Height
FROM Horse
WHERE AVG(Height)
(
SELECT Height
FROM Horse
WHERE Height
)
因为我是 SQL 新手,所以我对此尝试了许多不同的更改,但似乎找不到哪里出错了。
子查询只需要返回一个值(平均高度),然后表中的所有行都可以与该值进行比较:
SELECT
RegisteredName
, Height
-- more columns as needed
FROM Horse
WHERE Height > (SELECT AVG(Height) FROM Horse)
如果支持窗口函数:
SELECT *
FROM (
SELECT *, AVG(Height) OVER () AS AvgHeight
FROM Horse
) s
WHERE Height > AvgHeight