-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathstats.sql
76 lines (75 loc) · 2 KB
/
stats.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
\set dp '\'%' :dept '%\''
SELECT c.dept,
CASE
WHEN coalesce(re.nb,0) = c.vect THEN c.vect::character varying
ELSE coalesce(re.nb,0)||' / '||c.vect
END "Communes vecteur récupérées",
coalesce(ac.nb,0) "Adrr Cadastre",
coalesce(ao.nb,0) "Addr OSM"
FROM (SELECT DISTINCT dept,
count(*)vect
FROM code_cadastre
WHERE dept like :dp AND
format_cadastre = 'VECT'
GROUP BY 1) c
LEFT OUTER JOIN
(SELECT dept,
sum(nombre_adresses)*-1 nb
FROM batch
WHERE source = 'CADASTRE' AND
etape = 'recupCadastre'
GROUP BY 1) re
ON c.dept = re.dept
LEFT OUTER JOIN
(SELECT dept,
sum(nombre_adresses) nb
FROM batch
WHERE source = 'CADASTRE' AND
etape = 'loadCumul' GROUP BY 1) ac
ON c.dept = ac.dept
LEFT OUTER JOIN
(SELECT dept,
sum(nombre_adresses) nb
FROM batch
WHERE source = 'OSM' AND
etape = 'loadCumul'
GROUP BY 1) ao
ON c.dept = ao.dept
--ORDER BY 1
UNION ALL
SELECT c.dept,
CASE
WHEN coalesce(re.nb,0) = c.vect THEN c.vect::character varying
ELSE coalesce(re.nb,0)||' / '||c.vect
END Recuperes,
coalesce(ac.nb,0) "Addr Cadastre",
coalesce(ao.nb,0) "Addr OSM"
FROM (SELECT 'France' dept,
count(*)vect
FROM code_cadastre
WHERE format_cadastre = 'VECT'
GROUP BY 1) c
LEFT OUTER JOIN
(SELECT 'France' dept,
sum(nombre_adresses)*-1 nb
FROM batch
WHERE source = 'CADASTRE' AND
etape = 'recupCadastre'
GROUP BY 1) re
ON c.dept = re.dept
LEFT OUTER JOIN
(SELECT 'France' dept,
sum(nombre_adresses) nb
FROM batch
WHERE source = 'CADASTRE' AND
etape = 'loadCumul' GROUP BY 1) ac
ON c.dept = ac.dept
LEFT OUTER JOIN
(SELECT 'France' dept,
sum(nombre_adresses) nb
FROM batch
WHERE source = 'OSM' AND
etape = 'loadCumul'
GROUP BY 1) ao
ON c.dept = ao.dept
;