总体平均值
本课属于 Coddy SQL 学习旅程的“基础知识”单元。第 56 课,共 72 课。
挑战
简单可用的表和列:
enom_gilpane:part_id,rpm,watt,sizecastle_loctus:part_id,rpm,watt,sizehonpan_bilopsa:part_id,rpm,watt,sizeyurnol_qoltam:part_id,rpm,watt,size
最后,计算每个 part_id 的平均质量。
返回 part_id 和 avg_quality,并按 avg_quality 降序排序。
亲手试试
-- 这四个产品数据块和合并后的数据块沿用上一课的内容
WITH filtered_enom_gilpane_quality as (
WITH enom_gilpane_quality as (
SELECT part_id, ((rpm * watt) / size) as quality
FROM (
SELECT part_id, rpm, watt + (select avg(watt) from enom_gilpane) as watt, size
FROM enom_gilpane
)
)
SELECT *
FROM enom_gilpane_quality
WHERE quality > (select avg(quality) from enom_gilpane_quality)
),
filtered_castle_loctus_quality as (
WITH castle_loctus_quality as (
SELECT part_id, ((rpm * watt) / size) as quality
FROM (
SELECT part_id, rpm, watt + (select avg(watt) from castle_loctus) as watt, size
FROM castle_loctus
)
)
SELECT *
FROM castle_loctus_quality
WHERE quality > (select avg(quality) from castle_loctus_quality)
),
filtered_honpan_bilopsa_quality as (
WITH honpan_bilopsa_quality as (
SELECT part_id, ((rpm * watt) / size) as quality
FROM (
SELECT part_id, rpm, watt + (select avg(watt) from honpan_bilopsa) as watt, size
FROM honpan_bilopsa
)
)
SELECT *
FROM honpan_bilopsa_quality
WHERE quality > (select avg(quality) from honpan_bilopsa_quality)
),
filtered_yurnol_qoltam_quality as (
WITH yurnol_qoltam_quality as (
SELECT part_id, ((rpm * watt) / size) as quality
FROM (
SELECT part_id, rpm, watt + (select avg(watt) from yurnol_qoltam) as watt, size
FROM yurnol_qoltam
)
)
SELECT *
FROM yurnol_qoltam_quality
WHERE quality > (select avg(quality) from yurnol_qoltam_quality)
),
quality_table as (
SELECT * FROM filtered_enom_gilpane_quality
UNION ALL
SELECT * FROM filtered_castle_loctus_quality
UNION ALL
SELECT * FROM filtered_honpan_bilopsa_quality
UNION ALL
SELECT * FROM filtered_yurnol_qoltam_quality
)
-- 将合并后的数据行按产品部件汇总,每个部件保留一行,并按平均值从大到小排序
SELECT part_id, ____ as avg_quality
FROM quality_table
GROUP BY ____
ORDER BY ____基础知识中的所有课
自己练习: SQL 在线编辑器