Bien démarrer avec DV3F
N° 6
Cas pratiques pour identifier les acheteurs et vendeurs
Cas pratique : Identifier les acheteurs et vendeurs dans PostgreSQL/PostGIS
Rechercher à partir d'un nom
Pour rechercher des achats de la SCI Picsou sur le département du Nord (59) quand l'on connait parfaitement le nom présent dans DV3F :
SELECT *
FROM dvf.mutation
WHERE coddep = '59' AND 'SCI PICSOU' = ANY(l_noma); -- mettre en majuscule
-- ou
SELECT *
FROM dvf.mutation
WHERE coddep = '59' AND 'SCI PICSOU' = ANY(l_noma) AND fiabmaxa IS TRUE; -- pour s'assurer d'une fiabilité maximale
Pour rechercher des achats de la SCI Picsou sur le département du Nord (59) quand l'on connait approximativement le nom :
SELECT DISTINCT t1.*
FROM dvf.mutation t1
JOIN
(
SELECT idachvend
FROM dvf.acheteur_vendeur
WHERE ffnomprop LIKE '%SCI%PICSOU%' -- mettre en majuscule
) t2
ON t2.idachvend = ANY(t1.l_ida)
WHERE coddep = '59';
Pour rechercher, de manière plus exhaustive, les achats de la SCI Picsou sur le département du Nord (59) quand l'on connait approximativement le nom :
SELECT DISTINCT t1.*
FROM
dvf.mutation t1
JOIN (
SELECT idachvend
FROM dvf.acheteur_vendeur
WHERE identite IN (
SELECT identite
FROM dvf.acheteur_vendeur
WHERE ffnomprop LIKE '%SCI%PICSOU%')
UNION
SELECT idachvend
FROM dvf.acheteur_vendeur
WHERE ffnomprop LIKE '%SCI%PICSOU%'
AND identite IS NULL
) t2
ON t2.idachvend = ANY(t1.l_ida)
WHERE coddep = '59';
A noter que ce type de requêtes permet potentiellement de reconstituer les propriétés achetées par une personne morale. Il convient de les utiliser dans le respect de la legislation.
Rechercher à partir d'un code SIREN
Pour rechercher les ventes de la SCI Picsou sur le département du Nord (59) lorsque l'on connait son numero SIREN (591234567890):
SELECT DISTINCT t1.*
FROM
dvf.mutation t1
JOIN (
SELECT idachvend
FROM dvf.acheteur_vendeur
WHERE identite IN (
SELECT identite
FROM dvf.acheteur_vendeur
WHERE ffsiren = '591234567890')
UNION
SELECT idachvend
FROM dvf.acheteur_vendeur
WHERE ffsiren = '591234567890'
AND identite IS NULL
) t2
ON t2.idachvend = ANY(t1.l_idv)
WHERE coddep = '59';
Cas Pratique : Repérer les catégories d'acteurs
Sélectionner les mutations pour une catégorie d'acteur
Pour lister les mutations, sur la période 2010-2015, dans lesquelles une commune est intervenue dans le département du Nord (59) :
SELECT *
FROM dvf.mutation
WHERE coddep = '59'
AND anneemut >= 2010 AND anneemut <= 2015
AND ((codtypprov LIKE '%P5%' AND fiabmaxv IS TRUE)
OR (codtypproa LIKE '%P5%' AND fiabmaxa IS TRUE)); -- si DROM ou Paris, prendre aussi P6
Dénombrer les mutations par catégorie d'acheteur
Pour dénombrer les mutations pour chaque catégorie d'acheteur entre 2010 et 2015 sur le département du Nord (59) :
SELECT codtypproa, count(*) AS nb_achat
FROM dvf.mutation
WHERE coddep = '59'
AND anneemut >= 2010 AND anneemut <= 2015
AND fiabmaxa IS TRUE
GROUP BY codtypproa
ORDER BY nb_achat DESC;
Pour dénombrer les logements vendus par un organisme de logement social à un particulier entre 2010 et 2015 sur le département du Nord (59) :
SELECT sum(nblocmai + nblocapt) as nombre_de_logements
FROM dvf.mutation
WHERE coddep = '59'
AND anneemut >= 2010 AND anneemut <= 2015
AND codtypprov LIKE '%F1%' AND fiabmaxv IS TRUE
AND codtypproa LIKE '%X0%' AND fiabmaxa IS TRUE;
Cas Pratique : Fiabiliser l'analyse des modes d'action des acteurs sur les marchés
Améliorer le repérage de certains modes d'action à l'aide des roles
Pour lister très largement les ventes qui concernent la promotion immobilière entre 2010 et 2015 sur le département du Nord (59) :
SELECT sum(nblocmai + nblocapt) as nombre_de_logements
FROM dvf.mutation
WHERE coddep = '59'
AND anneemut >= 2010 AND anneemut <= 2015
AND ((codtypprov LIKE '%F6%' AND fiabmaxv IS TRUE)
OR rolev = 'Op') ;
Pour fiabiliser le nombre de logements achetés par un organisme de logement social entre 2010 et 2015 sur le département du Nord (59) :
SELECT sum(nblocmai + nblocapt) as nombre_de_logements
FROM dvf.mutation
WHERE coddep = '59'
AND anneemut >= 2010 AND anneemut <= 2015
AND ((codtypproa LIKE '%F1%' AND fiabmaxa IS TRUE)
OR rolea = 'Os');
Pour lister les ventes suite à aménagement de parcelle par une structure supposée professionnelle entre 2010 et 2015 sur le département du Nord (59) :
SELECT *
FROM dvf.mutation
WHERE coddep = '59'
AND anneemut >= 2010 AND anneemut <= 2015
AND ((codtypprov LIKE '%F5%' AND fiabmaxv IS TRUE)
OR (rolev = 'Oa' AND codtypprov NOT LIKE '%G%' AND codtypprov NOT LIKE '%X0%' AND fiabmaxv IS TRUE));