尝试从查询中删除重复的结果

时间:2019-04-24 17:18:24

标签: mysql sql database

我是SQL的新手,也是StackOverflow的新手,所以如果这有点基础,我深表歉意。

但是,我正在研究“星球大战”数据库,问题如下:

获取星舰积分的数量,平均成本和标准成本 参与每部电影。显示电影标题,飞船数量,平均和 标准差成本,保留两位小数。按平均费用对结果进行排序。

我建立了一个有效的查询,但是唯一的问题是,如果在电影中多次使用“星际飞船”,则价格的总和是使用过的总和。弄乱了平均值和标准偏差。

SELECT film.title,
ROUND(AVG(starship.cost_in_credits),2)"Average Cost", 
ROUND(STDDEV(starship.cost_in_credits),2)"Standard Deviation",
COUNT(DISTINCT starship.id)"Number of Starships"

FROM starship
INNER JOIN pilot ON starship.id = pilot.starship_id
INNER JOIN character ON pilot.character_id = character.id
INNER JOIN cast ON character.id = cast.character_id
INNER JOIN film ON cast.film_id = film.id
GROUP BY film.title
WHERE
ORDER BY ROUND(AVG(starship.cost_in_credits),2) ASC;

如果有帮助,请在https://ibb.co/rHJBPbv上查看模式的图像

这些是我使用DISTINCT尝试过的结果,这就是为什么“无船运货”行准确的原因。

TITLE                   Average Cost   Standard DEV      No of Ships
The Force Awakens       178333.17      69976.27           3
Return of the Jedi      10564583.17    36037853.6         8
A New Hope              11518181.45    37637696.07        6
Revenge of the Sith     27934444.33    55031032.47        7
Attack of the Clones    41793333.33    72059087.79        4
The Phantom Menace      50946666.67    61158466.52        5

我完全迷住了。在这方面的任何帮助将不胜感激。

非常感谢!

0 个答案:

没有答案