Menu
CoddyTech

回顾:WITH 查询

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

challenge icon

挑战

简单

可用的表和列:

  • devices_specs: device_id、width、height、num_features、opinion
  • devices_score: device_id、score

设备的质量用 (width/height)*num_features 来衡量。

我们要找出所有被高估的设备。找出所有 opinion 高于平均质量且 score 低于平均质量的设备。只返回 device_id。

要解决这个问题,请使用 WITH 子句创建一个计算平均质量的子查询,并在主查询中重复使用它。

亲手试试

-- 第 1 步:为只包含一个平均值的临时结果集命名
WITH avg_quality AS (
    SELECT ____ AS avg_q
    FROM devices_specs
)
-- 第 2 步:连接两个设备表,再关联临时结果集
SELECT dsp.device_id
FROM devices_specs dsp
INNER JOIN devices_score dsc ON ____
INNER JOIN avg_quality aq
-- 第 3 步:保留分别位于该平均值两侧的设备
WHERE ____

基础知识中的所有课

自己练习: SQL 在线编辑器