Spaces:
Running
Running
File size: 11,225 Bytes
e71f686 8dde0ad 1b8609b 9d9c434 8dde0ad c60ba05 690a3aa 8dde0ad 690a3aa 8dde0ad 5b3a43c 8dde0ad 5b3a43c 9ac8087 690a3aa e4e6fc3 690a3aa c60ba05 8dde0ad 5b3a43c 8dde0ad 5b3a43c 8dde0ad 5b3a43c 8dde0ad 5b3a43c 8dde0ad 5b3a43c 68bffe6 9ac8087 8dde0ad 9ac8087 c60ba05 8dde0ad c60ba05 8dde0ad 9ac8087 1b8609b 82ae898 8dde0ad 5b3a43c 1b8609b |
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 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 |
SELECT
e.id AS "Id da entrada no banco",
e."createdAt" AS "Data Criação",
e.name AS "Nome do documento",
-- Alvo ou depósito
COALESCE(data->'responseData'->0->'response'->>'target_or_deposit', 'Não especificado') AS "Alvo ou depósito",
-- Tipo de mineralização
COALESCE(
array_to_string(
ARRAY(
SELECT CONCAT(
mineralization->>'type'
)
FROM jsonb_array_elements(data->'responseData'->0->'response'->'mineralizations') AS mineralization
), ', '
), 'Não especificado'
) AS "Tipo de mineralização",
-- cidade
COALESCE(data->'responseData'->0->'response'->'region'->>'city', 'Não especificado') AS "Cidades",
-- estado
COALESCE(data->'responseData'->0->'response'->'region'->>'state', 'Não especificado') AS "Estado",
-- país
COALESCE(data->'responseData'->0->'response'->'region'->>'country', 'Não especificado') AS "País",
-- região
COALESCE(data->'responseData'->0->'response'->'region'->>'region_name', 'Não especificado') AS "Região",
-- Consolidar quantidade, tipo de mineralização e minerais com concentração
-- Consolidar quantidade, tipo de mineralização e minerais com concentração
CASE
WHEN jsonb_typeof(data->'responseData'->0->'response'->'mineralizations') = 'array' THEN
array_to_string(
ARRAY(
SELECT CONCAT(
-- Mostra a quantidade e o tipo de mineralização
mineralization->>'quantity', ' de ',
mineralization->>'type',
-- Condicional para incluir minerais apenas se existirem
CASE
WHEN jsonb_typeof(mineralization->'minerals') = 'array'
AND jsonb_array_length(mineralization->'minerals') > 0 THEN
': ' || array_to_string(
ARRAY(
SELECT CONCAT(
mineral->>'name',
' (', mineral->>'concentration', ')'
)
FROM jsonb_array_elements(mineralization->'minerals') AS mineral
WHERE mineral IS NOT NULL -- Ignora nulos
), ', '
)
ELSE '' -- Não mostra nada se não houver minerais
END
)
FROM jsonb_array_elements(data->'responseData'->0->'response'->'mineralizations') AS mineralization
WHERE mineralization IS NOT NULL -- Ignora nulos
), '; '
)
ELSE NULL -- Retorna NULL se o array não existir
END AS "Quantidades e concentrações",
-- extra_info
COALESCE(data->'responseData'->0->'response'->'region'->>'extra_info', 'Não especificado') AS "Informações adicionais",
COALESCE(NULLIF(data->'responseData'->4->'response'->>'mineralization_signatures', '[]'), 'Não especificado') AS "Assinaturas de mineralização", -- Foi decidido que este era melhor
COALESCE(NULLIF(data->'responseData'->0->'response'->'geological_context'->>'tectonic_context', ''), 'Não especificado') AS "Contexto tectônico", -- OK
COALESCE(NULLIF(data->'responseData'->0->'response'->'geological_context'->>'geological_context_description', ''), 'Não especificado') AS "Contexto geológico", -- OK
COALESCE(NULLIF(data->'responseData'->0->'response'->'geological_context'->>'context_of_present_rocks', ''), 'Não especificado') AS "Rochas presentes", -- OK
-- Rochas sedimentares
CASE
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'sedimentares') = 'array' THEN
array_to_string(
ARRAY(
SELECT CONCAT(
sedimentares->>'name',
' (Tipo: ', sedimentares->>'type',
', Relações de contato: ', COALESCE(sedimentares->>'contact_relations', 'ND'), ')'
)
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'sedimentares') AS sedimentares
WHERE sedimentares IS NOT NULL -- Ignora elementos nulos
), '; '
)
ELSE '' -- Retorna vazio se o array não existir
END AS "Rochas sedimentares",
-- Rochas metamórficas
CASE
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'metamórficas') = 'array' THEN
array_to_string(
ARRAY(
SELECT CONCAT(
metam->>'name',
' (Tipo: ', metam->>'type',
', Relações de contato: ', COALESCE(metam->>'contact_relations', 'ND'), ')'
)
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'metamórficas') AS metam
WHERE metam IS NOT NULL
), '; '
)
ELSE ''
END AS "Rochas metamórficas",
-- Rochas ígneas intrusivas
CASE
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_intrusivas') = 'array' THEN
array_to_string(
ARRAY(
SELECT CONCAT(
igneas_i->>'name',
' (Tipo: ', igneas_i->>'type',
', Relações de contato: ', COALESCE(igneas_i->>'contact_relations', 'ND'), ')'
)
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_intrusivas') AS igneas_i
WHERE igneas_i IS NOT NULL
), '; '
)
ELSE ''
END AS "Rochas ígneas intrusivas",
-- Rochas ígneas extrusivas
CASE
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_extrusivas') = 'array' THEN
array_to_string(
ARRAY(
SELECT CONCAT(
igneas_e->>'name',
' (Tipo: ', igneas_e->>'type',
', Relações de contato: ', COALESCE(igneas_e->>'contact_relations', 'ND'), ')'
)
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_extrusivas') AS igneas_e
WHERE igneas_e IS NOT NULL
), '; '
)
ELSE ''
END AS "Rochas ígneas extrusivas",
-- Rochas ígneas subvulcânicas
CASE
WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_subvulcânicas') = 'array' THEN
array_to_string(
ARRAY(
SELECT CONCAT(
igneas_sv->>'name',
' (Tipo: ', igneas_sv->>'type',
', Relações de contato: ', COALESCE(igneas_sv->>'contact_relations', 'ND'), ')'
)
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_subvulcânicas') AS igneas_sv
WHERE igneas_sv IS NOT NULL
), '; '
)
ELSE ''
END AS "Rochas ígneas subvulcânicas",
-- Rochas hospedeiras
COALESCE(NULLIF(data->'responseData'->2->'response'->'host_rocks'->>'name', '[null]'), 'Não identificado') AS "Nomes de rochas hospedeiras",
COALESCE(NULLIF(data->'responseData'->2->'response'->'host_rocks'->>'geologicalEnvironments', '[null]'), 'Não identificado') AS "Ambiente geológico",
COALESCE(NULLIF(array_to_string(ARRAY(SELECT jsonb_array_elements_text(data->'responseData'->2->'response'->'mineralFabric')), ', '), ''), 'Não identificado') AS "Textura de mineralização",
COALESCE(NULLIF(array_to_string(ARRAY(
SELECT jsonb_extract_path_text(associatedMinerals, 'name') || ' (' || 'Cor: ' || jsonb_extract_path_text(associatedMinerals, 'color') || ', Textura: ' || jsonb_extract_path_text(associatedMinerals, 'textures') || ', Nível de Alteração: ' || jsonb_extract_path_text(associatedMinerals, 'alterationLevel') || ')'
FROM jsonb_array_elements(data->'responseData'->2->'response'->'associatedMinerals') AS associatedMinerals
), ', '), ''), 'Não identificado') AS "Minerais associados",
-- Tipos de processos alterações
COALESCE(
NULLIF(
array_to_string(
ARRAY(
SELECT alteration->>'alterationType'
FROM jsonb_array_elements(data->'responseData'->2->'response'->'alteration_processes') AS alteration
), ', '
), ''
), 'Não identificado'
) AS "Tipos de processos de alterações",
-- Minerais associados a alterações hidrotermais
COALESCE(
NULLIF(
array_to_string(
ARRAY(
SELECT jsonb_array_elements_text(alteration->'associatedMinerals')
FROM jsonb_array_elements(data->'responseData'->2->'response'->'alteration_processes') AS alteration
), ', '
), ''
), 'Não identificado'
) AS "Minerais associados a processos de alteração",
COALESCE(NULLIF(data->'responseData'->2->'response'->>'chemical_pattern_analysis', '[]'), 'Não especificado') AS "Análise de padrão químico",
COALESCE(NULLIF(data->'responseData'->3->'response'->>'stable_isotopes', '[]'), 'Não especificado') AS "Isótopos Estáveis e Radiogênicos",
COALESCE(NULLIF(data->'responseData'->3->'response'->>'trace_elements_and_rare_earths', '[]'), 'Não especificado') AS "Elementos traço e terras raras",
-- COALESCE(NULLIF(data->'responseData'->3->'response'->>'structural_mapping', '[]'), 'Não especificado') AS "Geologia estrutural da região",
-- COALESCE(NULLIF(data->'responseData'->4->'response'->>'structureMineralizationRelation', '[]'), 'Não especificado') AS "Relação estrutura-mineralização",
COALESCE(NULLIF(data->'responseData'->4->'response'->>'geophysical_signatures', '[]'), 'Não especificado') AS "Assinaturas geofísicas",
COALESCE(NULLIF(data->'responseData'->5->'response'->>'additional_information', '[]'), 'Não especificado') AS "Informações adicionais de mineralização",
COALESCE(NULLIF(data->'responseData'->6->'response'->>'estimates', '[]'), 'Não especificado') AS "Estimativas de quantidade de mineralização",
COALESCE(NULLIF(data->'responseData'->7->'response'->>'potential', '[]'), 'Não especificado') AS "Potencial de descoberta",
COALESCE(NULLIF(data->'responseData'->8->'response'->>'strengths', '[]'), 'Não especificado') AS "Pontos fortes",
COALESCE(NULLIF(data->'responseData'->8->'response'->>'investment_risk', '[]'), 'Não especificado') AS "Risco de investimento",
COALESCE(NULLIF(data->'responseData'->8->'response'->>'economic_potential', '[]'), 'Não especificado') AS "Potencial econômico",
COALESCE(NULLIF(data->'responseData'->9->'response'->>'explanation', '[]'), 'Não especificado') AS "Explicação da favorabilidade",
COALESCE(NULLIF(data->'responseData'->9->'response'->>'favorability', '[]'), 'Não especificado') AS "Favorabilidade"
FROM
"Future Mining"."Extraction" e
ORDER BY
e."createdAt";
|