|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : mai 2005 Messages : 23 ![]() |
Bonjour,
j'ai déjà cherché à gauche à droite, mais je n'ai pas trouvé de réponse à cette question apparemment assez simple... Mon problème est le suivant: dans une table, je stocke 4 paramètres, S1, S2, S3 et S4. Je souhaite créer une vue qui me calcule la moyenne de ces 4 paramètres pour donner un indice ind_s. Pour l'instant, je calcule de façon naïve: Code :
Si mes valeurs sont: 10, 20, 30, 40, la moyenne calculée est 25 Si mes valeurs sont: 10, 20, NULL, 40, la moyenne calculée est 17.5. Je souhaiterais qu'elle soit 23.3 ((10+20+40)/3) Quelqu'un a-t-il une idée? La requête Code :
Merci d'avance et meilleures salutations, Stéphane |
||||
|
|
00
|
|
|
#2 | ||||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Votre table est à l’évidence mal modélisée et tout ce qui est mal modélisé conduit immanquablement à des requêtes complexes peu performantes et non évolutives, donc entrainant de la maintenance !
Voic l'épouvantable requête qu'il faut faire suite à l’horreur que constitue votre table : Code :
Code :
Cela, s’appelle le respect des formes normales. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 23 ![]() |
Merci beaucoup, je vais donc revoir la normalisation de mes tables!
meilleures salutations, Stéphane |
|
|
00
|
|
|
#4 |
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 177 ![]() |
Tu auras rectifier la petite coquille de SqlPro
par
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 23 ![]() |
Oui, j'avais rectifié... mais la piste de la re-modélisation semble tout de même plus évolutive! Je retourne donc à mes études :-)
Au passage, je serais curieux de savoir s'il y a une raison "logique" au fait que l'on ne peut pas, en SQL, facilement calculer une moyenne entre plusieurs colonnes d'une même table, par exemple Code :
SELECT avg(col1, col2, col3) FROM mytable Encore merci à tous 2 pour vos réponses Stéphane |
|
|
00
|
|
|
#6 | |||||
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Citation:
Code :
|
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com