Moyenne sql

Résolu/Fermé
Teo35 Messages postés 13 Date d'inscription samedi 10 avril 2021 Statut Membre Dernière intervention 31 mars 2023 - 10 avril 2021 à 19:23
Teo35 Messages postés 13 Date d'inscription samedi 10 avril 2021 Statut Membre Dernière intervention 31 mars 2023 - 11 avril 2021 à 22:39
Bonjour,
Je dois faire une requête pour avoir le titre des films ou leur durée est supérieur à la durée moyenne de tous les film en vidéothèque.
Ma table est composée :
codefilm primary key
titre film
durée
J ‘ ai essayé de créer une vue pour avoir la moyenne... avg(durée)
Puis j aurais voulu faire une jointure avec la table film. Je voudrais savoir si c est la bonne méthode? Si oui comment faire la jointure entre ces deux tables?
Merci pour votre aide je suis débutant...
Bonne soirée






Configuration: iPhone / Safari 14.0.3

2 réponses

jee pee Messages postés 40166 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 septembre 2024 9 319
Modifié le 10 avril 2021 à 20:48
Bonjour,

Il y a longtemps que je n'ai pas écrit de sql. Mais pas besoin de créer une vue.

moi je regarderais un truc de style
select * from films
....
having durée > avg(durée) 

mais il me semble que having necessite un group by

peut être même que
select * from films
....
where durée > avg(durée) 


ou alors un sous select
select * from films
...
where durée > (select avg(durée) from films)


on doit aussi pouvoir faire une jointure avec 2 fois la table films



0
yg_be Messages postés 23163 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 septembre 2024 1 532
Modifié le 10 avril 2021 à 21:17
bonjour,
je pense qu'il faut plutôt faire ainsi:
select * from films as f,
(select avg(durée) as moy from films) as a
where f.durée > a.moy
0
yg_be Messages postés 23163 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 septembre 2024 1 532 > yg_be Messages postés 23163 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 septembre 2024
10 avril 2021 à 21:17
@jee pee: ce qui rejoint l'idée du sous select. il me semble indispensable d'avoir, en effet, une jointure sur deux fois la table.
0
yg_be Messages postés 23163 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 septembre 2024 1 532 > yg_be Messages postés 23163 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 septembre 2024
Modifié le 10 avril 2021 à 21:36
@Teo35 c'est une très bonne idée de d'abord calculer la moyenne, et d'ensuite faire une jointure entre la moyenne et la table. c'est ce que je propose en une seule requête, qui calcule la moyenne et fait la jointure.
0
Bonjour
ah oui, je voulais créer une vue qui n'est pas de tout indispensable
merci pour vos réponses et pour votre aide.
bonne soirée
0
yg_be Messages postés 23163 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 septembre 2024 1 532
11 avril 2021 à 19:05
peux-tu alors marquer la discussion comme résolue?
0
Teo35 Messages postés 13 Date d'inscription samedi 10 avril 2021 Statut Membre Dernière intervention 31 mars 2023 > yg_be Messages postés 23163 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 septembre 2024
11 avril 2021 à 22:39
Oui bien sûr
Merci encore pour votre aide
0