Menu
CoddyTech

子查询(一)

本课属于 Coddy SQL 学习旅程的“基础知识”单元。第 38 课,共 72 课。

子查询可以让我们将多个查询合并为一个。例如,看看下面的 employees 表:

idsalary
148
234
346
413
528

我们需要使用子查询,因为不能直接使用 WHERE salary > AVG(salary),因为像 AVG() 这样的聚合函数不能用于 WHERE 子句,只能在数据分组后使用。

SELECT id, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
);

子查询可以帮助我们找出薪水高于公司平均水平的员工:先计算平均薪水(内层查询),再用这个值筛选员工(外层查询)。

平均值是:(48 + 34 + 46 + 13 + 28) / 5 = 33.8,所以查询结果是:

idsalary
148
234
346
challenge icon

挑战

简单

可用的表和列:

  • shop:price,quantity,category,list_date

编写一个查询,找出价格高于所有商品平均价格的所有商品(选择所有列)。

在 WHERE 子句中使用子查询计算平均价格,然后将每件商品的价格与该平均价格进行比较。

亲手试试

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: SQL 在线编辑器