-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathselect.sql
More file actions
146 lines (119 loc) · 2.78 KB
/
select.sql
File metadata and controls
146 lines (119 loc) · 2.78 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
set serveroutput on
DECLARE
CURSOR c_grupos IS
SELECT
gp.nm_grupo,
e.nr_cep
FROM
T_NIMBUS_GP_ENDERECO gp
INNER JOIN
T_NIMBUS_ENDERECO e ON gp.id_endereco = e.id_endereco
ORDER BY
e.nr_cep DESC;
v_nm_grupo T_NIMBUS_GP_ENDERECO.nm_grupo%TYPE;
v_nr_cep T_NIMBUS_ENDERECO.nr_cep%TYPE;
BEGIN
OPEN c_grupos;
LOOP
FETCH c_grupos INTO v_nm_grupo, v_nr_cep;
EXIT WHEN c_grupos%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Grupo: ' || v_nm_grupo || ' | CEP: ' || v_nr_cep);
END LOOP;
CLOSE c_grupos;
END;
/
BEGIN
FOR rec IN (
SELECT
b.nm_bairro,
a.ds_risco,
a.ds_tipo,
a.horario_alerta
FROM
T_NIMBUS_BAIRRO b
INNER JOIN
T_NIMBUS_ALERTA a ON b.id_bairro = a.id_bairro
) LOOP
DBMS_OUTPUT.PUT_LINE(
'Logradouro: ' || rec.nm_bairro ||
' | Risco: ' || rec.ds_risco ||
' | Tipo: ' || rec.ds_tipo ||
' | Data: ' || TO_CHAR(rec.horario_alerta, 'DD/MM/YYYY HH24:MI')
);
END LOOP;
END;
/
DECLARE
CURSOR cursor2 IS
SELECT u.nm_usuario, gp.nm_grupo
FROM
T_NIMBUS_USUARIO u
INNER JOIN
T_NIMBUS_GP_ENDERECO gp ON u.id_usuario = gp.id_usuario;
BEGIN
FOR i IN cursor2 LOOP
dbms_output.put_line('Usuário: ' || i.nm_usuario || ' | Grupo: ' || i.nm_grupo);
END LOOP;
END;
--relatório
SELECT
a.ds_tipo,
a.ds_risco,
COUNT(*) AS total_alertas
FROM
T_NIMBUS_ALERTA a
JOIN
T_NIMBUS_BAIRRO b ON a.id_bairro = b.id_bairro
GROUP BY
a.ds_tipo, a.ds_risco
ORDER BY
total_alertas DESC;
SELECT
c.nm_cidade,
COUNT(DISTINCT gp.id_gp_endereco) AS total_grupos
FROM
T_NIMBUS_GP_ENDERECO gp
JOIN
T_NIMBUS_ENDERECO e ON gp.id_endereco = e.id_endereco
JOIN
T_NIMBUS_BAIRRO b ON e.id_bairro = b.id_bairro
JOIN
T_NIMBUS_CIDADE c ON b.id_cidade = c.id_cidade
GROUP BY
c.nm_cidade
ORDER BY
total_grupos DESC;
SELECT
c.nm_cidade,
SUM(p.nr_chuva) AS soma_chuva,
SUM(p.nr_velocidade_vento) AS soma_vento
FROM
T_NIMBUS_PREVISAO p
JOIN
T_NIMBUS_BAIRRO b ON p.id_bairro = b.id_bairro
JOIN
T_NIMBUS_CIDADE c ON b.id_cidade = c.id_cidade
GROUP BY
c.nm_cidade
ORDER BY
soma_chuva DESC;
SELECT
b.nm_bairro,
AVG(p.nr_rajada_vento) AS media_rajada
FROM
T_NIMBUS_PREVISAO p
JOIN
T_NIMBUS_BAIRRO b ON p.id_bairro = b.id_bairro
GROUP BY
b.nm_bairro
ORDER BY
media_rajada DESC;
SELECT
b.nm_bairro,
AVG(p.nr_temperatura) AS media_temperatura
FROM
T_NIMBUS_PREVISAO p
JOIN
T_NIMBUS_BAIRRO b ON p.id_bairro = b.id_bairro
GROUP BY
b.nm_bairro;