The Overall Average
Part of the Fundamentals section of Coddy's SQL journey. Lesson 56 of 72.
Challenge
EasyAvailable tables and columns:
<strong>enom_gilpane</strong>:<strong>part_id</strong>,<strong>rpm</strong>,<strong>watt</strong>,<strong>size</strong><strong>castle_loctus</strong>:<strong>part_id</strong>,<strong>rpm</strong>,<strong>watt</strong>,<strong>size</strong><strong>honpan_bilopsa</strong>:<strong>part_id</strong>,<strong>rpm</strong>,<strong>watt</strong>,<strong>size</strong><strong>yurnol_qoltam</strong>:<strong>part_id</strong>,<strong>rpm</strong>,<strong>watt</strong>,<strong>size</strong>
Finally, calculate the average quality for each part_id.
Return part_id, avg_quality, sorted by avg_quality in descending order.
Try it yourself
-- These four product blocks and the combined block are carried over from the last lesson
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
)
-- Reduce the combined rows to one row per product part, largest average first
SELECT part_id, ____ as avg_quality
FROM quality_table
GROUP BY ____
ORDER BY ____All lessons in Fundamentals
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models10Imaginary Products
Adjust WattCalculate Product Quality2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columnsPractice on your own: SQL playground