Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 07 December 2015 12:45

Loublande
Participant occasionnel
Date d'inscription: 29 Oct 2008
Messages: 38

tableau de synthèse sur une table

Bonjour,

J'ai la table suivante qui contient plus de 5000 enregistrements :

CREATE TABLE result.prix_m2
(
  reference_ character varying(20),
  valeur_fon double precision,
  n bigint,
  surf_total double precision,
  prix double precision,
  "Section" character varying(4),
  "_1_Article" character varying(28),
  "Type_local" character varying(80),
  annee_mutation character varying(4),
  maison numeric,
  appartement numeric
)

Je souhaite faire une synthèse de cette table avec les éléments suivant : une colonne "Section", une colonne somme des ventes 2007, une colonne somme des ventes 2008,une colonne somme des ventes 2009, ..... j'ai les infos de prix dans "prix" et les années de vente dans "annee_mutation".

Je n'arrive pas à obtenir ce que je veux. Quelqu'un pourrait-il m'apporter des éléments de réponses.

Merci d'avance.
Loublande

Hors ligne

 

#2 Mon 07 December 2015 13:05

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: tableau de synthèse sur une table

Bonjour,

Ce que vous voulez faire s'appelle une transposition de colonnes (tableaux croisés dynamiques dans excel):
convertir une serie de stats affichable en lignes en SQL, en colonnes d'une nouvelle table.

Il y a un module pour cela dans PostgreSQL, appelé tablefunc, qui marche très bien. (http://www.postgresql.org/docs/current/ … efunc.html)
Vous pouvez aussi le faire en faisant les stats par année d'abord, puis en faisant un join sur cette table intermédiaire, en filtrant les années comme il faut, mais c'est moins élégant wink

Nico

ps. je vous invite a renommer les champs de votre table pour ne pas les mettre entre "" et pouvoir les utiliser de facon insensible à la casse. C'est qd meme beaucoup plus pratique.

Hors ligne

 

#3 Mon 07 December 2015 13:07

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: tableau de synthèse sur une table

(ça sent un traitement dvf/majic, tout ça wink )

Hors ligne

 

#4 Mon 07 December 2015 13:56

ppluvinet
Participant assidu
Lieu: LYON
Date d'inscription: 6 Aug 2007
Messages: 608

Re: tableau de synthèse sur une table

C'est intéressant ! Merci Nicolas !
J'avais plutôt l'habitude de faire ce genre de stat avec R qui offre un grand nombre de fonctionnalités dont celles de sortir rapidement quelques graphiques.


Pascal PLUVINET

Hors ligne

 

#5 Tue 08 December 2015 09:59

Loublande
Participant occasionnel
Date d'inscription: 29 Oct 2008
Messages: 38

Re: tableau de synthèse sur une table

Bonjour,

Merci Nicolas pour la réponse.
Je vais devoir me tourner vers la solution 2 pour le moment car je suis en version 8.4 ..... Je ne peux donc pas installer le module. Il faut que je demande à mon service info de migrer les bases d'abord.
Et, bien vu, il y a bien du DVF la dessous.

Loublande

Hors ligne

 

#6 Tue 08 December 2015 10:14

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: tableau de synthèse sur une table

Bonjour,

Tablefunc est disponible aussi pour la 8.4
(le "unsupported" en haut de la page indique que la 8.4 n'est plus supportée par PG (incitation a passer à une version supérieure).

Sinon, par requete ca marche aussi wink

Nicolas

Hors ligne

 

Pied de page des forums

Powered by FluxBB