|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
--Q5 La colonne Global_Sales est redondante car elle peut être calculée grâce aux autres colonnes.
|
|
|
--Cela pose d’ailleurs problème puisque certaines données sont incohérentes. Écrire une requête SQL
|
|
|
--permettant de détecter les lignes incohérentes
|
|
|
SELECT COUNT(global_sales) FROM VGSales WHERE global_sales != (na_sales + eu_sales + jp_sales + other_sales);
|
|
|
/*
|
|
|
count
|
|
|
-------
|
|
|
4548
|
|
|
*/
|
|
|
|
|
|
|
|
|
--Q6 Écrire une requête SQL permettant de recalculer la colonne Global_sales en fonction des
|
|
|
--autres colonnes pour ces lignes problématiques
|
|
|
Update VGSales SET global_sales=(na_sales + eu_sales + jp_sales + other_sales) WHERE global_sales != (na_sales + eu_sales + jp_sales + other_sales);
|
|
|
/*
|
|
|
UPDATE 4548
|
|
|
*/
|
|
|
|
|
|
--2
|
|
|
--Q1 Écrire la requête SQL permettant de calculer les ventes moyennes par année de sortie des jeux, pour les jeux du genre ’Adventure’
|
|
|
SELECT ROUND(AVG(global_sales),2), year
|
|
|
FROM VGSales
|
|
|
WHERE genre = 'Adventure' and year != 'NaN'
|
|
|
GROUP BY year
|
|
|
ORDER by year;
|
|
|
/*
|
|
|
=========================RESULTAT=========================
|
|
|
round | year
|
|
|
-------+------
|
|
|
0.40 | 1983
|
|
|
4.38 | 1987
|
|
|
1.12 | 1991
|
|
|
3.06 | 1992
|
|
|
0.07 | 1993
|
|
|
0.94 | 1994
|
|
|
0.05 | 1995
|
|
|
0.25 | 1996
|
|
|
0.36 | 1997
|
|
|
0.39 | 1998
|
|
|
0.40 | 1999
|
|
|
0.19 | 2000
|
|
|
0.44 | 2001
|
|
|
0.26 | 2002
|
|
|
0.18 | 2003
|
|
|
0.22 | 2004
|
|
|
0.20 | 2005
|
|
|
0.16 | 2006
|
|
|
0.29 | 2007
|
|
|
0.15 | 2008
|
|
|
0.15 | 2009
|
|
|
0.11 | 2010
|
|
|
0.15 | 2011
|
|
|
0.10 | 2012
|
|
|
0.10 | 2013
|
|
|
0.08 | 2014
|
|
|
0.15 | 2015
|
|
|
0.05 | 2016
|
|
|
(28 lignes)
|
|
|
*/
|
|
|
|
|
|
--Q2 Afficher le résultat de la requête précédente sous forme de courbe.
|
|
|
|
|
|
--Q3 Même question pour le total des ventes par année de sortie des jeux
|
|
|
SELECT SUM(global_sales) as total_vente, year
|
|
|
FROM VGSales
|
|
|
WHERE genre = 'Adventure' and year != 'NaN'
|
|
|
GROUP BY year
|
|
|
ORDER by year;
|
|
|
/*
|
|
|
=========================RESULTAT=========================
|
|
|
total_vente | year
|
|
|
-------------+------
|
|
|
0.40 | 1983
|
|
|
4.38 | 1987
|
|
|
2.24 | 1991
|
|
|
12.24 | 1992
|
|
|
0.07 | 1993
|
|
|
3.74 | 1994
|
|
|
0.71 | 1995
|
|
|
4.18 | 1996
|
|
|
4.97 | 1997
|
|
|
9.04 | 1998
|
|
|
7.61 | 1999
|
|
|
2.96 | 2000
|
|
|
*/
|
|
|
|
|
|
--Q4 Même question pour l’ensemble des jeux.
|
|
|
SELECT SUM(global_sales) as total_vente, year
|
|
|
FROM VGSales
|
|
|
WHERE year != 'NaN'
|
|
|
GROUP BY year
|
|
|
ORDER by year;
|
|
|
/*
|
|
|
=========================RESULTAT=========================
|
|
|
total_vente | year
|
|
|
-------------+------
|
|
|
11.38 | 1980
|
|
|
35.33 | 1981
|
|
|
28.88 | 1982
|
|
|
16.80 | 1983
|
|
|
50.35 | 1984
|
|
|
53.49 | 1985
|
|
|
37.08 | 1986
|
|
|
21.70 | 1987
|
|
|
47.21 | 1988
|
|
|
73.45 | 1989
|
|
|
49.37 | 1990
|
|
|
32.23 | 1991
|
|
|
*/
|
|
|
|
|
|
--PARTIE3
|
|
|
--Q1 Écrire la requête SQL permettant de calculer le total des ventes en Europe par plateforme.
|
|
|
SELECT platform, SUM(eu_sales) as total_vente
|
|
|
FROM VGSales
|
|
|
GROUP BY platform;
|
|
|
/*
|
|
|
=========================RESULTAT=========================
|
|
|
platform | total_vente
|
|
|
----------+-------------
|
|
|
TG16 | 0.00
|
|
|
PSP | 67.83
|
|
|
2600 | 5.47
|
|
|
PS4 | 123.70
|
|
|
N64 | 41.06
|
|
|
GBA | 74.60
|
|
|
GG | 0.00
|
|
|
PSV | 16.33
|
|
|
XB | 60.38
|
|
|
DC | 1.69
|
|
|
XOne | 44.77
|
|
|
PS2 | 339.11
|
|
|
*/
|
|
|
|
|
|
--Q4 Écrire la requête SQL permettant de calculer le total des ventes aux Etats-Unis, en Europe,
|
|
|
--au Japon et ailleurs par plateforme.
|
|
|
SELECT platform, SUM(na_sales) as total_vente_na, SUM(eu_sales) as total_vente_eu, SUM(jp_sales) as total_vente_jp, SUM(other_sales) as total_vente_autre
|
|
|
FROM VGSales
|
|
|
GROUP BY platform;
|
|
|
/*
|
|
|
=========================RESULTAT=========================
|
|
|
platform | total_vente_na | total_vente_eu | total_vente_jp | total_vente_autre
|
|
|
----------+----------------+----------------+----------------+-------------------
|
|
|
TG16 | 0.00 | 0.00 | 0.16 | 0.00
|
|
|
PSP | 108.53 | 67.83 | 76.79 | 42.19
|
|
|
2600 | 90.25 | 5.47 | 0.00 | 0.91
|
|
|
PS4 | 96.80 | 123.70 | 14.30 | 43.36
|
|
|
N64 | 137.82 | 41.06 | 34.22 | 4.38
|
|
|
GBA | 187.54 | 74.60 | 47.33 | 7.73
|
|
|
GG | 0.00 | 0.00 | 0.04 | 0.00
|
|
|
PSV | 16.20 | 16.33 | 20.96 | 8.45
|
|
|
XB | 186.69 | 60.38 | 1.38 | 8.72
|
|
|
DC | 5.43 | 1.69 | 8.56 | 0.27
|
|
|
XOne | 83.19 | 44.77 | 0.34 | 11.92
|
|
|
PS2 | 581.97 | 339.11 | 139.64 | 193.44
|
|
|
*/
|
|
|
|
|
|
--Q5 Afficher sous forme de graphique les résultats de la requête précédente avec une courbe par
|
|
|
--zone géographique. Cette fois-ci la légende devra apparaître.
|
|
|
|
|
|
--PARTIE4
|
|
|
--Q1 Écrire la requête SQL de récupérer les ventes (Etats-unis, Europe, Japon, Autre) du jeu Mario Kart 64.
|
|
|
SELECT SUM(na_sales) as total_vente_na, SUM(eu_sales) as total_vente_eu, SUM(jp_sales) as total_vente_jp, SUM(other_sales) as total_vente_autre
|
|
|
FROM VGSales
|
|
|
WHERE name = 'Mario Kart 64';
|
|
|
/*
|
|
|
=========================RESULTAT=========================
|
|
|
total_vente_na | total_vente_eu | total_vente_jp | total_vente_autre
|
|
|
----------------+----------------+----------------+-------------------
|
|
|
5.55 | 1.94 | 2.23 | 0.15
|
|
|
*/
|
|
|
|
|
|
--PARTIE5
|
|
|
--Q1 Écrire la requête SQL permettant de calculer le total des ventes de jeux dans le monde par genre.
|
|
|
SELECT round(sum(global_sales),2) as total_vente, genre
|
|
|
FROM VGSales
|
|
|
GROUP BY genre
|
|
|
ORDER BY total_vente DESC; |