Bonjour, je suis assez nul en math et j'ai un problème à résoudre : j'ai
des biens immobiliers et pour chaque bien j'ai une ou plusieurs
cotations (prix).
Les cotations sont chronologiques et évoluent dans le temps (à la hausse
ou à la baisse, une cotation identique au jour j et au jour j-1 n'est
pas conservée dans la base).
Je souhaite calculer le prix moyen au mètre carré par mois
SELECT YEAR(cotations.created_at) AS grp_annee,
MONTH(cotations.created_at) AS grp_mois,
SUM(prix) / SUM(superficie) AS prix_moyen
FROM cotations, biens
WHERE cotations.bien_id = biens.id
GROUP BY grp_annee, grp_mois
Voila comment je m'y prends, les résultats obtenus semblent cohérents
mais je préfèrerait avoir confirmation...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jogo
Sur fr.comp.applications.sgbd, Zouplaz disait :
Je souhaite calculer le prix moyen au mètre carré par mois SELECT YEAR(cotations.created_at) AS grp_annee, MONTH(cotations.created_at) AS grp_mois, SUM(prix) / SUM(superficie) AS prix_moyen FROM cotations, biens WHERE cotations.bien_id = biens.id GROUP BY grp_annee, grp_mois
Ce n'est pas tout à fait juste. Prenons un exemple simple : - 125 m² à 250 000 euros - 40 m² à 40 000 euros. Ta « moyenne » donne : 290 000 / 165 = 1 757.57. La vrai moyenne, c'est celle des prix au m², cad : (2 000 + 1 000) / 2 = 1 500.
En fait ta méthode sur-représente les grandes surfaces.
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
-- Enfin, si vous pouviez me donner des détails sur ces petites choses qui agrémentent la vie de tous les jours sur le Net, ça m'intéresse. Si tu es blonde à forte poit .. heu non la je m'égare .. -+-TIB in <http://www.le-gnu.net> : Si mamelle s'y met... -+-
Sur fr.comp.applications.sgbd, Zouplaz disait :
Je souhaite calculer le prix moyen au mètre carré par mois
SELECT YEAR(cotations.created_at) AS grp_annee,
MONTH(cotations.created_at) AS grp_mois,
SUM(prix) / SUM(superficie) AS prix_moyen
FROM cotations, biens
WHERE cotations.bien_id = biens.id
GROUP BY grp_annee, grp_mois
Ce n'est pas tout à fait juste. Prenons un exemple simple :
- 125 m² à 250 000 euros
- 40 m² à 40 000 euros.
Ta « moyenne » donne : 290 000 / 165 = 1 757.57.
La vrai moyenne, c'est celle des prix au m², cad :
(2 000 + 1 000) / 2 = 1 500.
En fait ta méthode sur-représente les grandes surfaces.
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
--
Enfin, si vous pouviez me donner des détails sur ces petites choses qui
agrémentent la vie de tous les jours sur le Net, ça m'intéresse.
Si tu es blonde à forte poit .. heu non la je m'égare ..
-+-TIB in <http://www.le-gnu.net> : Si mamelle s'y met... -+-
Je souhaite calculer le prix moyen au mètre carré par mois SELECT YEAR(cotations.created_at) AS grp_annee, MONTH(cotations.created_at) AS grp_mois, SUM(prix) / SUM(superficie) AS prix_moyen FROM cotations, biens WHERE cotations.bien_id = biens.id GROUP BY grp_annee, grp_mois
Ce n'est pas tout à fait juste. Prenons un exemple simple : - 125 m² à 250 000 euros - 40 m² à 40 000 euros. Ta « moyenne » donne : 290 000 / 165 = 1 757.57. La vrai moyenne, c'est celle des prix au m², cad : (2 000 + 1 000) / 2 = 1 500.
En fait ta méthode sur-représente les grandes surfaces.
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
-- Enfin, si vous pouviez me donner des détails sur ces petites choses qui agrémentent la vie de tous les jours sur le Net, ça m'intéresse. Si tu es blonde à forte poit .. heu non la je m'égare .. -+-TIB in <http://www.le-gnu.net> : Si mamelle s'y met... -+-
Zouplaz
le 10/05/2007 17:21, Jogo nous a dit:
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
Merci bien !
le 10/05/2007 17:21, Jogo nous a dit:
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
Merci bien !
P'tit Marcel
Hello,
Jogo a écrit :
La vrai moyenne, c'est celle des prix au m², cad : (2 000 + 1 000) / 2 = 1 500.
en statistique descriptive, on utilise plutôt la moyenne pondérée. Dans ce cas précis, il s'agit de la moyenne des prix au m2 pondérée par les superficies. voir fr.wikipedia.org/wiki/Moyenne_pond%C3%A9r%C3%A9e
prix moyen pondéré = sum (montant) / sum (superficie)
ce qui revient au calcul initial de Zouplaz.
En pratique, si on demande à chaque m2 à quel prix il a été vendu, la moyenne de ces prix correspondra au prix moyen pondéré.
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
ce chiffre correspond à la moyenne directe des prix moyens. le problème avec ce calcul, c'est qu'il est décorrelé de la performance globale (cette moyenne peut s'améliorer alors que le marché baisse).
De: Zouplaz
Les cotations sont chronologiques et évoluent dans le temps (à la hausse ou à la baisse, une cotation identique au jour j et au jour j-1 n'est pas conservée dans la base).
donc on ne peut pas calculer simplement une moyenne avec cette table :-(
Prenons par exemple d'un bien qui valait 100¤ du 1 au 30 mars et 120¤ le 31 mars. tu calculeras une moyenne de 110¤ alors que la moyenne des prix sur la période est plutôt: (100*30 + 120)/31 = 100,65¤
La vrai moyenne, c'est celle des prix au m², cad :
(2 000 + 1 000) / 2 = 1 500.
en statistique descriptive, on utilise plutôt la moyenne pondérée. Dans
ce cas précis, il s'agit de la moyenne des prix au m2 pondérée par les
superficies. voir fr.wikipedia.org/wiki/Moyenne_pond%C3%A9r%C3%A9e
prix moyen pondéré = sum (montant) / sum (superficie)
ce qui revient au calcul initial de Zouplaz.
En pratique, si on demande à chaque m2 à quel prix il a été vendu, la
moyenne de ces prix correspondra au prix moyen pondéré.
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
ce chiffre correspond à la moyenne directe des prix moyens. le problème
avec ce calcul, c'est qu'il est décorrelé de la performance globale
(cette moyenne peut s'améliorer alors que le marché baisse).
De: Zouplaz <user@domain.invalid>
Les cotations sont chronologiques et évoluent dans le temps (à la
hausse ou à la baisse, une cotation identique au jour j et au jour j-1
n'est pas conservée dans la base).
donc on ne peut pas calculer simplement une moyenne avec cette table :-(
Prenons par exemple d'un bien qui valait 100¤ du 1 au 30 mars et 120¤ le
31 mars. tu calculeras une moyenne de 110¤ alors que la moyenne des prix
sur la période est plutôt: (100*30 + 120)/31 = 100,65¤
eça
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
La vrai moyenne, c'est celle des prix au m², cad : (2 000 + 1 000) / 2 = 1 500.
en statistique descriptive, on utilise plutôt la moyenne pondérée. Dans ce cas précis, il s'agit de la moyenne des prix au m2 pondérée par les superficies. voir fr.wikipedia.org/wiki/Moyenne_pond%C3%A9r%C3%A9e
prix moyen pondéré = sum (montant) / sum (superficie)
ce qui revient au calcul initial de Zouplaz.
En pratique, si on demande à chaque m2 à quel prix il a été vendu, la moyenne de ces prix correspondra au prix moyen pondéré.
Il faut donc utiliser : AVG(prix/surface) AS prix_moyen
ce chiffre correspond à la moyenne directe des prix moyens. le problème avec ce calcul, c'est qu'il est décorrelé de la performance globale (cette moyenne peut s'améliorer alors que le marché baisse).
De: Zouplaz
Les cotations sont chronologiques et évoluent dans le temps (à la hausse ou à la baisse, une cotation identique au jour j et au jour j-1 n'est pas conservée dans la base).
donc on ne peut pas calculer simplement une moyenne avec cette table :-(
Prenons par exemple d'un bien qui valait 100¤ du 1 au 30 mars et 120¤ le 31 mars. tu calculeras une moyenne de 110¤ alors que la moyenne des prix sur la période est plutôt: (100*30 + 120)/31 = 100,65¤
en statistique descriptive, on utilise plutôt la moyenne pondérée. Dans ce cas précis, il s'agit de la moyenne des prix au m2 pondérée par les superficies. voir fr.wikipedia.org/wiki/Moyenne_pond%C3%A9r%C3%A9e
prix moyen pondéré = sum (montant) / sum (superficie)
ce qui revient au calcul initial de Zouplaz.
Hey ! Alors c'était pas faux... J'en suis surpris !
En pratique, si on demande à chaque m2 à quel prix il a été vendu, la moyenne de ces prix correspondra au prix moyen pondéré.
De: Zouplaz > Les cotations sont chronologiques et évoluent dans le temps (à la > hausse ou à la baisse, une cotation identique au jour j et au jour j-1 > n'est pas conservée dans la base).
donc on ne peut pas calculer simplement une moyenne avec cette table :-(
Mais ça peut s'arranger, jusqu'à présent j'ai conservé chaque cotation ,même identique, en me disant que ça avait sûrement un intérêt mais asna savoir lequel. C'est dans un soucis d'optimisation que j'envisage de supprimer les doublons...
Prenons par exemple d'un bien qui valait 100¤ du 1 au 30 mars et 120¤ le 31 mars. tu calculeras une moyenne de 110¤ alors que la moyenne des prix sur la période est plutôt: (100*30 + 120)/31 = 100,65¤
Donc si je devrait revenir à la situation de départ, avec une cotation chaque jour et AVG(prix/surface) AS prix_moyen comme mode de calcul ?
le 10/05/2007 23:05, P'tit Marcel nous a dit:
en statistique descriptive, on utilise plutôt la moyenne pondérée. Dans
ce cas précis, il s'agit de la moyenne des prix au m2 pondérée par les
superficies. voir fr.wikipedia.org/wiki/Moyenne_pond%C3%A9r%C3%A9e
prix moyen pondéré = sum (montant) / sum (superficie)
ce qui revient au calcul initial de Zouplaz.
Hey ! Alors c'était pas faux... J'en suis surpris !
En pratique, si on demande à chaque m2 à quel prix il a été vendu, la
moyenne de ces prix correspondra au prix moyen pondéré.
De: Zouplaz <user@domain.invalid>
> Les cotations sont chronologiques et évoluent dans le temps (à la
> hausse ou à la baisse, une cotation identique au jour j et au jour j-1
> n'est pas conservée dans la base).
donc on ne peut pas calculer simplement une moyenne avec cette table :-(
Mais ça peut s'arranger, jusqu'à présent j'ai conservé chaque cotation
,même identique, en me disant que ça avait sûrement un intérêt mais asna
savoir lequel. C'est dans un soucis d'optimisation que j'envisage de
supprimer les doublons...
Prenons par exemple d'un bien qui valait 100¤ du 1 au 30 mars et 120¤ le
31 mars. tu calculeras une moyenne de 110¤ alors que la moyenne des prix
sur la période est plutôt: (100*30 + 120)/31 = 100,65¤
Donc si je devrait revenir à la situation de départ, avec une cotation
chaque jour et AVG(prix/surface) AS prix_moyen comme mode de calcul ?
en statistique descriptive, on utilise plutôt la moyenne pondérée. Dans ce cas précis, il s'agit de la moyenne des prix au m2 pondérée par les superficies. voir fr.wikipedia.org/wiki/Moyenne_pond%C3%A9r%C3%A9e
prix moyen pondéré = sum (montant) / sum (superficie)
ce qui revient au calcul initial de Zouplaz.
Hey ! Alors c'était pas faux... J'en suis surpris !
En pratique, si on demande à chaque m2 à quel prix il a été vendu, la moyenne de ces prix correspondra au prix moyen pondéré.
De: Zouplaz > Les cotations sont chronologiques et évoluent dans le temps (à la > hausse ou à la baisse, une cotation identique au jour j et au jour j-1 > n'est pas conservée dans la base).
donc on ne peut pas calculer simplement une moyenne avec cette table :-(
Mais ça peut s'arranger, jusqu'à présent j'ai conservé chaque cotation ,même identique, en me disant que ça avait sûrement un intérêt mais asna savoir lequel. C'est dans un soucis d'optimisation que j'envisage de supprimer les doublons...
Prenons par exemple d'un bien qui valait 100¤ du 1 au 30 mars et 120¤ le 31 mars. tu calculeras une moyenne de 110¤ alors que la moyenne des prix sur la période est plutôt: (100*30 + 120)/31 = 100,65¤
Donc si je devrait revenir à la situation de départ, avec une cotation chaque jour et AVG(prix/surface) AS prix_moyen comme mode de calcul ?
P'tit Marcel
Zouplaz a écrit :
Mais ça peut s'arranger, jusqu'à présent j'ai conservé chaque cotation ,même identique, en me disant que ça avait sûrement un intérêt mais asna savoir lequel. C'est dans un soucis d'optimisation que j'envisage de supprimer les doublons...
Donc si je devrait revenir à la situation de départ, avec une cotation chaque jour et AVG(prix/surface) AS prix_moyen comme mode de calcul ?
plutôt SUM(prix) / SUM(superficie)
pour éviter les doublons, il faudrait un champ supplémentaire qui donne le nombre de jours de validité de la cotation. Dans ce cas, la moyenne pondérée sur la période serait :
Mais ça peut s'arranger, jusqu'à présent j'ai conservé chaque cotation
,même identique, en me disant que ça avait sûrement un intérêt mais asna
savoir lequel. C'est dans un soucis d'optimisation que j'envisage de
supprimer les doublons...
Donc si je devrait revenir à la situation de départ, avec une cotation
chaque jour et AVG(prix/surface) AS prix_moyen comme mode de calcul ?
plutôt SUM(prix) / SUM(superficie)
pour éviter les doublons, il faudrait un champ supplémentaire qui donne
le nombre de jours de validité de la cotation. Dans ce cas, la moyenne
pondérée sur la période serait :
Mais ça peut s'arranger, jusqu'à présent j'ai conservé chaque cotation ,même identique, en me disant que ça avait sûrement un intérêt mais asna savoir lequel. C'est dans un soucis d'optimisation que j'envisage de supprimer les doublons...
Donc si je devrait revenir à la situation de départ, avec une cotation chaque jour et AVG(prix/surface) AS prix_moyen comme mode de calcul ?
plutôt SUM(prix) / SUM(superficie)
pour éviter les doublons, il faudrait un champ supplémentaire qui donne le nombre de jours de validité de la cotation. Dans ce cas, la moyenne pondérée sur la période serait :