République
Française
Documentation Datafoncier
Toutes les ressources sur les données foncières
Bien démarrer avec DV3F
Pour obtenir le nombre de mutations qui ont eu lieu sur le département du Nord (59) :
SELECT count(*) as nombre_de_mutations
FROM dvf.mutation
WHERE coddep = '59';
Pour obtenir le nombre de mutations qui concernent la commune de Lille (code insee : 59350) :
SELECT count(*) as nombre_de_mutations
FROM dvf.mutation
-- il est préférable de préciser le coddep pour réduire le temps de réponse
WHERE coddep = '59' AND '59350' = ANY(l_codinsee);
Pour obtenir le nombre de mutations qui concernent exclusivement la commune de Lille (code insee : 59350) :
SELECT count(*) as nombre_de_mutations
FROM dvf.mutation
-- il est préférable de préciser le coddep pour réduire le temps de réponse
WHERE coddep = '59' AND nbcomm = 1 AND l_codinsee[1] = '59350';
Pour obtenir le nombre de mutations qui concernent 2 communes (Lille - code insee : 59350 et Villeneuve d'Ascq - code insee : 59009) :
SELECT count(*) as nombre_de_mutations
FROM dvf.mutation
-- il est préférable de préciser le coddep pour réduire le temps de réponse
WHERE coddep = '59' AND l_codinsee && ARRAY['59350', '59009']::VARCHAR[];
Pour obtenir le nombre de locaux ayant muté sur le département du Nord (59) :
-- via la table mutation
SELECT sum(nblocmut) as nombre_de_locaux
FROM dvf.mutation
WHERE coddep = '59';
-- via la table local (mode avancé)
SELECT count(*) as nombre_de_locaux
FROM
(
SELECT DISTINCT idmutation, idloc
FROM dvf.local
WHERE coddep = '59'
)t;
Pour obtenir le nombre de locaux mutés dont les mutations concernent exclusivement la commune de Lille (code insee : 59350) :
SELECT sum(nblocmut) as nombre_de_locaux
FROM dvf.mutation
-- il est préférable de préciser le coddep pour réduire le temps de réponse
WHERE coddep = '59' AND nbcomm = 1 AND l_codinsee[1] = '59350';
Dans le cas précédent, les mutations concernant 2 ou plusieurs communes dont Lille sont exclues. Pour obtenir le nombre de locaux ayant muté sur la commune de Lille (code insee : 59350) sans prendre en compte les locaux des autres communes :
SELECT count(*)
FROM
(
SELECT DISTINCT idmutation, idloc
FROM dvf.local
WHERE substring(idpar, 1, 5) = '59350'
)t;
Pour obtenir la répartition des locaux ayant muté selon leur forme physique sur le département du Nord (59) :
-- via la table mutation
SELECT
sum(nblocmut) as nombre_de_locaux,
sum(nblocmai) as nombre_de_maisons,
sum(nblocapt) as nombre_d_appartements,
sum(nblocmai + nblocapt) as nombre_de_logements,
sum(nblocdep) as nombre_de_dependance,
sum(nblocact) as nombre_de_locaux_activites,
sum(ffnbactsec) as nombre_d_activites_secondaires,
sum(ffnbactter) as nombre_d_activites_tertiaires
FROM dvf.mutation
WHERE coddep = '59';
-- via la table local (mode avancé)
SELECT
count(*) as nombre_de_locaux,
sum(CASE WHEN codtyploc = 1 THEN 1 ELSE 0 END) AS nombre_de_maisons,
sum(CASE WHEN codtyploc = 2 THEN 1 ELSE 0 END) as nombre_d_appartements,
sum(CASE WHEN codtyploc IN (1, 2) THEN 1 ELSE 0 END) as nombre_de_logements,
sum(CASE WHEN codtyploc = 3 THEN 1 ELSE 0 END) as nombre_de_dependance,
sum(CASE WHEN codtyploc = 4 THEN 1 ELSE 0 END) as nombre_de_locaux_activites,
sum(CASE WHEN ffctyploc = '4' AND ffcnatloc IN ('U', 'US', 'UN', 'UE', 'UG') THEN 1 ELSE 0 END) as nombre_d_activites_secondaires,
sum(CASE WHEN ffctyploc = '4' AND ffcnatloc IN ('CA', 'CM', 'CB', 'CH', 'ME', 'SM') THEN 1 ELSE 0 END) as nombre_d_activites_tertiaires
FROM
(
SELECT DISTINCT ON (idmutation, idloc) *
FROM dvf.local
WHERE coddep = '59'
)t;
Pour obtenir le nombre d'appartements de moins de 3 pièces principales (strictement) ayant muté sur le département du Nord (59) :
-- via la table mutation
SELECT sum(nbapt1pp + nbapt2pp) as nombre_appartement_moins_de_3_pieces
FROM dvf.mutation
WHERE coddep = '59';
-- via la table local
SELECT
count(*) AS nombre_appartement_moins_de_3_pieces
FROM
(
SELECT DISTINCT ON (idmutation, idloc) *
FROM dvf.local
WHERE coddep = '59'
)t
WHERE codtyploc = 2 AND nbpprinc IN (0, 1, 2);
Pour obtenir le nombre d'appartements anciens de type T3 ayant muté sur le département du Nord (59) :
SELECT
count(*) AS nombre_T3_ancien
FROM
(
SELECT DISTINCT ON (idmutation, idloc) *
FROM dvf.local
WHERE coddep = '59'
)t
WHERE codtyploc = 2 AND nbpprinc = 3 AND anciennete = 'ancien';
Pour lister toutes les mutations qui concernent le local ayant l'identifiant 595400649993 :
SELECT *
FROM dvf.mutation
WHERE coddep='59' AND '595400649993' = ANY(l_idlocmut);
Pour compter toutes les mutations qui concernent le local ayant l'identifiant 595400649993 :
SELECT count(*)
FROM dvf.mutation
WHERE coddep='59' AND '595400649993' = ANY(l_idlocmut);
Pour obtenir le nombre de parcelles ayant muté sur le département du Nord (59) :
-- via la table mutation
SELECT sum(nbparmut) as nombre_de_parcelles_mutees
FROM dvf.mutation
WHERE coddep = '59';
-- via la table disposition_parcelle (mode avancé)
SELECT count(*) as nombre_de_parcelles_mutees
FROM
(
SELECT DISTINCT idmutation, idpar
FROM dvf.disposition_parcelle
WHERE coddep = '59' AND parcvendue IS TRUE
)t;
Pour obtenir le nombre de parcelles concernées par une mutation sur le département du Nord (59) :
-- via la table mutation
SELECT sum(nbpar) as nombre_de_parcelles_concernees
FROM dvf.mutation
WHERE coddep = '59';
-- via la table disposition_parcelle (mode avancé)
SELECT count(*) as nombre_de_parcelles_concernees
FROM
(
SELECT DISTINCT idmutation, idpar
FROM dvf.disposition_parcelle
WHERE coddep = '59'
)t;
Pour obtenir le nombre de parcelles mutées dont les mutations concernent exclusivement la commune de Lille (code insee : 59350) :
SELECT sum(nbparmut) AS nombre_de_parcelles_mutees
FROM dvf.mutation
-- il est préférable de préciser le coddep pour réduire le temps de réponse
WHERE coddep = '59' AND nbcomm = 1 AND l_codinsee[1] = '59350';
Pour obtenir le nombre de parcelles mutées sur la commune de Lille (code insee : 59350) :
SELECT count(*) AS nombre_de_parcelles_mutees
FROM
(
SELECT DISTINCT idmutation, idpar
FROM dvf.disposition_parcelle
WHERE coddep || codcomm = '59350' AND parcvendue IS TRUE
)t;
Pour lister toutes les mutations qui concernent la parcelle ayant l'identifiant 59183540AL0328 :
SELECT *
FROM dvf.mutation
WHERE coddep='59' AND '59183540AL0328' = ANY(l_idpar);
Pour compter toutes les mutations qui concernent la parcelle ayant l'identifiant 59183540AL0328 :
SELECT count(*)
FROM dvf.mutation
WHERE coddep='59' AND '59183540AL0328' = ANY(l_idpar);