实验室:2.14 LAB - 使用子查询选择高大的马

问题描述 投票:0回答:2

练习说明:

马表有以下列:

ID - 整数,主键

RegisteredName - 可变长度字符串

Breed - 可变长度字符串

高度 - 小数

出生日期 - 日期

编写一条 SELECT 语句,仅选择高于平均身高的马匹的注册名称和身高。按高度对结果进行排序(升序)。

提示:使用子查询来查找平均高度。

这是我写的:

SELECT RegisteredName, Height
FROM Horse
WHERE AVG(Height)
    (
    SELECT Height
    FROM Horse
    WHERE Height
    )

因为我是 SQL 新手,所以我对此尝试了许多不同的更改,但似乎找不到哪里出错了。

sql subquery
2个回答
1
投票

子查询只需要返回一个值(平均高度),然后表中的所有行都可以与该值进行比较:

SELECT
      RegisteredName
    , Height
    -- more columns as needed
FROM Horse
WHERE Height > (SELECT AVG(Height) FROM Horse)

0
投票

如果支持窗口函数:

SELECT *
FROM (
  SELECT *, AVG(Height) OVER () AS AvgHeight
  FROM Horse
) s
WHERE Height > AvgHeight
© www.soinside.com 2019 - 2024. All rights reserved.