Spaces:
Sleeping
Sleeping
SELECT | |
id, | |
id AS "Id da entrada no banco", | |
"createdAt" AS "Data Criação", | |
e.name AS "Nome do documento", | |
-- alvo | |
COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(mineralization->'region'->>'target_or_deposit', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Alvo ou depósito", -- OK | |
-- ore | |
array_to_string(ARRAY_AGG(DISTINCT(mineralization->>'ore')), ', ') AS "Tipo de mineralização", | |
-- cidade | |
COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->'region'->>'city', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Cidades", | |
-- estado | |
COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->'region'->>'state', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Estado", | |
-- país | |
COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->'region'->>'country', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "País", | |
-- região | |
COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->'region'->>'region_name', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Região", | |
-- quantidade mineralizacão | |
COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->>'quantity', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Quantidade de minério", | |
COALESCE(NULLIF(array_to_string(ARRAY( | |
SELECT jsonb_extract_path_text(concentration, 'name_of_ore') || ' - (' || jsonb_extract_path_text(concentration, 'concentration_of_ore') || ')' | |
FROM jsonb_array_elements(mineralization->'concentration') AS concentration | |
), ', '), ''), 'Não especificado') AS "Concentração do minério", | |
-- extra_info | |
COALESCE(NULLIF(array_to_string(ARRAY_AGG(NULLIF(NULLIF(t.mineralization->'region'->>'extra_info', 'Não especificado'), '')), ' | '), ''), 'Não especificado') AS "Informações adicionais", | |
--------- | |
COALESCE(NULLIF(data->'responseData'->2->'response'->>'mineralizationSignatures', ''), 'Não identificado') AS "Assinaturas de mineralização", -- OK | |
COALESCE(NULLIF(mineralization->'geological_context'->>'tectonic_context', ''), 'Não especificado') AS "Contexto tectônico", -- OK | |
COALESCE(NULLIF(mineralization->'geological_context'->>'geological_context_description', ''), 'Não especificado') AS "Contexto geológico", -- OK | |
COALESCE(NULLIF(mineralization->'geological_context'->>'context_of_present_rocks', ''), 'Não especificado') AS "Rochas presentes", -- OK | |
---------- | |
-- Rochas sedimentares | |
COALESCE(NULLIF(array_to_string(ARRAY( | |
SELECT jsonb_extract_path_text(sedimentares, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(sedimentares, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(sedimentares, 'contact_relations') || ')' | |
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'sedimentares') AS sedimentares | |
), '; '), ''), 'Não identificado') AS "Rochas sedimentares", | |
-- Rochas metamórficas | |
COALESCE(NULLIF(array_to_string(ARRAY( | |
SELECT jsonb_extract_path_text(metamorficas, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(metamorficas, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(metamorficas, 'contact_relations') || ')' | |
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'metamórficas') AS metamorficas | |
), '; '), ''), 'Não identificado') AS "Rochas metamórficas", | |
-- Rochas ígneas intrusivas | |
COALESCE(NULLIF(array_to_string(ARRAY( | |
SELECT jsonb_extract_path_text(igneas_i, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(igneas_i, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(igneas_i, 'contact_relations') || ')' | |
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_intrusivas') AS igneas_i | |
), '; '), ''), 'Não identificado') AS "Rochas ígneas intrusivas", | |
-- Rochas ígneas extrusivas | |
COALESCE(NULLIF(array_to_string(ARRAY( | |
SELECT jsonb_extract_path_text(igneas_e, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(igneas_e, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(igneas_e, 'contact_relations') || ')' | |
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_extrusivas') AS igneas_e | |
), '; '), ''), 'Não identificado') AS "Rochas ígneas extrusivas", | |
-- Rochas ígneas subvulcânicas | |
COALESCE(NULLIF(array_to_string(ARRAY( | |
SELECT jsonb_extract_path_text(sv, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(sv, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(sv, 'contact_relations') || ')' | |
FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_subvulcânicas') AS sv | |
), '; '), ''), 'Não identificado') 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", | |
COALESCE(NULLIF(data->'responseData'->2->'response'->>'fluidInclusionsAnalysis', '[]'), 'Não especificado') AS "Análise de inclusões fluidas", | |
-- Alterações hidrotermais | |
COALESCE(NULLIF(array_to_string(ARRAY(SELECT jsonb_array_elements_text(data->'responseData'->2->'response'->'hydrotermal_alterations'->'alterationTypes')), ', '), ''), 'Não identificado') AS "Tipos de alterações hidrotermais", | |
COALESCE(NULLIF(array_to_string(ARRAY(SELECT jsonb_array_elements_text(data->'responseData'->2->'response'->'hydrotermal_alterations'->'associatedMinerals')), ', '), ''), 'Não identificado') AS "Minerais associados a alterações hidrotermais", | |
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'->5->'response'->>'stableIsotopes', '[]'), 'Não especificado') AS "Isótopos Estáveis e Radiogênicos", | |
COALESCE(NULLIF(data->'responseData'->5->'response'->>'traceElementsAndRareEarths', '[]'), 'Não especificado') AS "Elementos traço e terras raras", | |
COALESCE(NULLIF(data->'responseData'->6->'response'->>'mineralizationSignatures', '[]'), 'Não especificado') AS "Assinatura geofísica", | |
COALESCE(NULLIF(data->'responseData'->7->'response'->>'additionalInformation', '[]'), 'Não especificado') AS "Informações adicionais de mineralização", | |
COALESCE(NULLIF(data->'responseData'->8->'response'->>'potential', '[]'), 'Não especificado') AS "Potencial de descoberta", | |
COALESCE(NULLIF(data->'responseData'->9->'response'->>'strengths', '[]'), 'Não especificado') AS "Pontos fortes", | |
COALESCE(NULLIF(data->'responseData'->9->'response'->>'investment_risk', '[]'), 'Não especificado') AS "Risco de investimento", | |
COALESCE(NULLIF(data->'responseData'->9->'response'->>'economic_potential', '[]'), 'Não especificado') AS "Potencial econômico", | |
COALESCE(NULLIF(data->'responseData'->10->'response'->>'explanation', '[]'), 'Não especificado') AS "Explicação da favorabilidade", | |
COALESCE(NULLIF(data->'responseData'->10->'response'->>'favorability', '[]'), 'Não especificado') AS "Favorabilidade" | |
FROM | |
public."Extraction" e | |
CROSS JOIN LATERAL | |
jsonb_array_elements(e.data->'responseData'->0->'response'->'mineralizations') AS t(mineralization) | |
GROUP BY | |
e."createdAt", | |
e.id, | |
e.name, | |
mineralization; | |