Spaces:
Running
Running
fix: query final para checagem com Johann 19-nov
Browse files
query.sql
CHANGED
@@ -26,36 +26,41 @@ SELECT
|
|
26 |
COALESCE(data->'responseData'->0->'response'->'region'->>'country', 'Não especificado') AS "País",
|
27 |
-- região
|
28 |
COALESCE(data->'responseData'->0->'response'->'region'->>'region_name', 'Não especificado') AS "Região",
|
29 |
-
|
30 |
-- Consolidar quantidade, tipo de mineralização e minerais com concentração
|
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 |
-
), 'Não especificado'
|
58 |
-
) AS "Quantidades e concentrações",
|
59 |
|
60 |
-- extra_info
|
61 |
COALESCE(data->'responseData'->0->'response'->'region'->>'extra_info', 'Não especificado') AS "Informações adicionais",
|
@@ -67,99 +72,88 @@ SELECT
|
|
67 |
COALESCE(NULLIF(data->'responseData'->0->'response'->'geological_context'->>'context_of_present_rocks', ''), 'Não especificado') AS "Rochas presentes", -- OK
|
68 |
|
69 |
-- Rochas sedimentares
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
'Não identificado'
|
86 |
-
) AS "Rochas sedimentares",
|
87 |
-
|
88 |
-- Rochas metamórficas
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
'Não identificado'
|
105 |
-
) AS "Rochas metamórficas",
|
106 |
|
107 |
-- Rochas ígneas intrusivas
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
'Não identificado'
|
124 |
-
) AS "Rochas ígneas intrusivas",
|
125 |
|
126 |
-- Rochas ígneas extrusivas
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
'Não identificado'
|
143 |
-
) AS "Rochas ígneas extrusivas",
|
144 |
|
145 |
-- Rochas ígneas subvulcânicas
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
'Não identificado'
|
162 |
-
) AS "Rochas ígneas subvulcânicas",
|
163 |
|
164 |
-- Rochas hospedeiras
|
165 |
COALESCE(NULLIF(data->'responseData'->2->'response'->'host_rocks'->>'name', '[null]'), 'Não identificado') AS "Nomes de rochas hospedeiras",
|
@@ -221,10 +215,7 @@ SELECT
|
|
221 |
FROM
|
222 |
"Future Mining"."Extraction" e
|
223 |
|
224 |
-
|
225 |
-
e."createdAt"
|
226 |
-
e.id,
|
227 |
-
e.name,
|
228 |
-
data->'responseData'->0->'response'->'mineralizations'->'type';
|
229 |
|
230 |
|
|
|
26 |
COALESCE(data->'responseData'->0->'response'->'region'->>'country', 'Não especificado') AS "País",
|
27 |
-- região
|
28 |
COALESCE(data->'responseData'->0->'response'->'region'->>'region_name', 'Não especificado') AS "Região",
|
|
|
29 |
-- Consolidar quantidade, tipo de mineralização e minerais com concentração
|
30 |
+
-- Consolidar quantidade, tipo de mineralização e minerais com concentração
|
31 |
+
CASE
|
32 |
+
WHEN jsonb_typeof(data->'responseData'->0->'response'->'mineralizations') = 'array' THEN
|
33 |
+
array_to_string(
|
34 |
+
ARRAY(
|
35 |
+
SELECT CONCAT(
|
36 |
+
-- Mostra a quantidade e o tipo de mineralização
|
37 |
+
mineralization->>'quantity', ' de ',
|
38 |
+
mineralization->>'type',
|
39 |
+
|
40 |
+
-- Condicional para incluir minerais apenas se existirem
|
41 |
+
CASE
|
42 |
+
WHEN jsonb_typeof(mineralization->'minerals') = 'array'
|
43 |
+
AND jsonb_array_length(mineralization->'minerals') > 0 THEN
|
44 |
+
': ' || array_to_string(
|
45 |
+
ARRAY(
|
46 |
+
SELECT CONCAT(
|
47 |
+
mineral->>'name',
|
48 |
+
' (', mineral->>'concentration', ')'
|
49 |
+
)
|
50 |
+
FROM jsonb_array_elements(mineralization->'minerals') AS mineral
|
51 |
+
WHERE mineral IS NOT NULL -- Ignora nulos
|
52 |
+
), ', '
|
53 |
+
)
|
54 |
+
ELSE '' -- Não mostra nada se não houver minerais
|
55 |
+
END
|
56 |
)
|
57 |
+
FROM jsonb_array_elements(data->'responseData'->0->'response'->'mineralizations') AS mineralization
|
58 |
+
WHERE mineralization IS NOT NULL -- Ignora nulos
|
59 |
+
), '; '
|
60 |
+
)
|
61 |
+
ELSE NULL -- Retorna NULL se o array não existir
|
62 |
+
END AS "Quantidades e concentrações",
|
63 |
+
|
|
|
|
|
64 |
|
65 |
-- extra_info
|
66 |
COALESCE(data->'responseData'->0->'response'->'region'->>'extra_info', 'Não especificado') AS "Informações adicionais",
|
|
|
72 |
COALESCE(NULLIF(data->'responseData'->0->'response'->'geological_context'->>'context_of_present_rocks', ''), 'Não especificado') AS "Rochas presentes", -- OK
|
73 |
|
74 |
-- Rochas sedimentares
|
75 |
+
CASE
|
76 |
+
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'sedimentares') = 'array' THEN
|
77 |
+
array_to_string(
|
78 |
+
ARRAY(
|
79 |
+
SELECT CONCAT(
|
80 |
+
sedimentares->>'name',
|
81 |
+
' (Tipo: ', sedimentares->>'type',
|
82 |
+
', Relações de contato: ', COALESCE(sedimentares->>'contact_relations', 'ND'), ')'
|
83 |
+
)
|
84 |
+
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'sedimentares') AS sedimentares
|
85 |
+
WHERE sedimentares IS NOT NULL -- Ignora elementos nulos
|
86 |
+
), '; '
|
87 |
+
)
|
88 |
+
ELSE '' -- Retorna vazio se o array não existir
|
89 |
+
END AS "Rochas sedimentares",
|
|
|
|
|
|
|
90 |
-- Rochas metamórficas
|
91 |
+
CASE
|
92 |
+
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'metamórficas') = 'array' THEN
|
93 |
+
array_to_string(
|
94 |
+
ARRAY(
|
95 |
+
SELECT CONCAT(
|
96 |
+
metam->>'name',
|
97 |
+
' (Tipo: ', metam->>'type',
|
98 |
+
', Relações de contato: ', COALESCE(metam->>'contact_relations', 'ND'), ')'
|
99 |
+
)
|
100 |
+
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'metamórficas') AS metam
|
101 |
+
WHERE metam IS NOT NULL
|
102 |
+
), '; '
|
103 |
+
)
|
104 |
+
ELSE ''
|
105 |
+
END AS "Rochas metamórficas",
|
|
|
|
|
106 |
|
107 |
-- Rochas ígneas intrusivas
|
108 |
+
CASE
|
109 |
+
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_intrusivas') = 'array' THEN
|
110 |
+
array_to_string(
|
111 |
+
ARRAY(
|
112 |
+
SELECT CONCAT(
|
113 |
+
igneas_i->>'name',
|
114 |
+
' (Tipo: ', igneas_i->>'type',
|
115 |
+
', Relações de contato: ', COALESCE(igneas_i->>'contact_relations', 'ND'), ')'
|
116 |
+
)
|
117 |
+
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_intrusivas') AS igneas_i
|
118 |
+
WHERE igneas_i IS NOT NULL
|
119 |
+
), '; '
|
120 |
+
)
|
121 |
+
ELSE ''
|
122 |
+
END AS "Rochas ígneas intrusivas",
|
|
|
|
|
123 |
|
124 |
-- Rochas ígneas extrusivas
|
125 |
+
CASE
|
126 |
+
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_extrusivas') = 'array' THEN
|
127 |
+
array_to_string(
|
128 |
+
ARRAY(
|
129 |
+
SELECT CONCAT(
|
130 |
+
igneas_e->>'name',
|
131 |
+
' (Tipo: ', igneas_e->>'type',
|
132 |
+
', Relações de contato: ', COALESCE(igneas_e->>'contact_relations', 'ND'), ')'
|
133 |
+
)
|
134 |
+
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_extrusivas') AS igneas_e
|
135 |
+
WHERE igneas_e IS NOT NULL
|
136 |
+
), '; '
|
137 |
+
)
|
138 |
+
ELSE ''
|
139 |
+
END AS "Rochas ígneas extrusivas",
|
|
|
|
|
140 |
|
141 |
-- Rochas ígneas subvulcânicas
|
142 |
+
CASE
|
143 |
+
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_subvulcânicas') = 'array' THEN
|
144 |
+
array_to_string(
|
145 |
+
ARRAY(
|
146 |
+
SELECT CONCAT(
|
147 |
+
igneas_sv->>'name',
|
148 |
+
' (Tipo: ', igneas_sv->>'type',
|
149 |
+
', Relações de contato: ', COALESCE(igneas_sv->>'contact_relations', 'ND'), ')'
|
150 |
+
)
|
151 |
+
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_subvulcânicas') AS igneas_sv
|
152 |
+
WHERE igneas_sv IS NOT NULL
|
153 |
+
), '; '
|
154 |
+
)
|
155 |
+
ELSE ''
|
156 |
+
END AS "Rochas ígneas subvulcânicas",
|
|
|
|
|
157 |
|
158 |
-- Rochas hospedeiras
|
159 |
COALESCE(NULLIF(data->'responseData'->2->'response'->'host_rocks'->>'name', '[null]'), 'Não identificado') AS "Nomes de rochas hospedeiras",
|
|
|
215 |
FROM
|
216 |
"Future Mining"."Extraction" e
|
217 |
|
218 |
+
ORDER BY
|
219 |
+
e."createdAt";
|
|
|
|
|
|
|
220 |
|
221 |
|