You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.6 KiB
62 lines
2.6 KiB
import pandas as pd
|
|
import psycopg2 as pg
|
|
import subprocess as sp
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
|
|
# nom = input("Nom d'utilisateur : ")
|
|
# print(nom)
|
|
# util = 'db' + nom
|
|
# print(util)
|
|
sp.run(["stty", "-echo"])
|
|
|
|
|
|
mdp = input("Le mot de passe stp : ")
|
|
|
|
|
|
sp.run(["stty", "echo"])
|
|
|
|
co = None
|
|
try:
|
|
# Connexion à la base
|
|
# Attention ! pensez à remplacer dblogin , login et mot_de_passe
|
|
#avec vos informations
|
|
co = pg.connect(host='londres',
|
|
database ='dblolaborie',
|
|
user='lolaborie',
|
|
password = mdp)
|
|
|
|
df = pd.read_sql('''SELECT p.nomR,avg(s.gscore) as Moyenne_Score_Global_Region
|
|
FROM Statistique s, Pays p, Region r
|
|
WHERE s.codeP = p.code AND p.nomR = r.nom AND s.annee = '2021'
|
|
GROUP BY p.nomR;''', con=co) # Score moyen global par région en 2021
|
|
fig = df.plot(x='nomr', y='moyenne_position_region')
|
|
fig.set_title('Score moyen global par région en 2021')
|
|
fig.set_xlabel('Région')
|
|
fig.set_ylabel('Score moyen (sur 100)')
|
|
plt.show() # Affichage
|
|
df = pd.read_sql('''SELECT p.nom, s.gscore, s.annee
|
|
FROM Statistique s, Pays p
|
|
WHERE s.codeP = p.code AND s.gscore = (SELECT min(gscore) FROM Statistique s1 WHERE s1.annee = s.annee);''', con=co) # Pays ayant le score global le moins élevé par année
|
|
print(df)
|
|
df = pd.read_sql('''SELECT p.nom, s.gscore, s.annee
|
|
FROM Statistique s, Pays p
|
|
WHERE s.codeP = p.code AND s.gscore = (SELECT max(gscore) FROM Statistique s1 WHERE s1.annee = s.annee);''', con=co) # Pays ayant le score global le plus élevé par année
|
|
print(df)
|
|
df = pd.read_sql('''SELECT p.nomR, s.gscore, s.annee
|
|
FROM Statistique s, Pays p
|
|
WHERE s.codeP = p.code AND s.gscore = (SELECT min(gscore) FROM Statistique s1 WHERE s1.annee = s.annee);''', con=co) # Pays ayant le score global le moins élevé par année
|
|
print(df)
|
|
df = pd.read_sql('''SELECT p.nomR, s.gscore, s.annee
|
|
FROM Statistique s, Pays p
|
|
WHERE s.codeP = p.code AND s.gscore = (SELECT max(gscore) FROM Statistique s1 WHERE s1.annee = s.annee);''', con=co) # Pays ayant le score global le plus élevé par année
|
|
print(df)
|
|
|
|
# Affichage du message d'erreur en cas de probl ème de connexion
|
|
except(Exception, pg.DatabaseError) as error :
|
|
print(error)
|
|
# Attention ! Toujours fermer la connexion lorsqu 'on en a plus besoin
|
|
finally:
|
|
if co is not None:
|
|
co.close() |