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);