Adicionando valores em duas colunas para uma nova coluna na tabela de sincronização no CARTO?
On Fevereiro 16, 2021 by adminTemos dados de campo vindos de uma plataforma de aplicativo e queremos conduzir uma visualização CartoDB para ajudar no planejamento.
Vários de guarda-parques saem de locais de levantamento para contar crocodilos. Para cada site, o aplicativo coleta: – Número de crocodilos machos (num_croc_male) – Número de crocodilos fêmeas (num_croc_female)
Na verdade, não queremos que nosso pessoal fique parado no escuro fazendo contas, então eles fazem upload os dados neste formato direto para a nuvem, e isso é então POSTADO no nosso CartoDB.
Na visualização do CartoDB, queremos mostrar as duas colunas acima e também queremos: Número total de crocodilos (num_croc_sitetotal).
Uma vez que este inteiro também será usado para estilizar a exibição de cada site, quero o valor armazenado em uma coluna.
E já que os dados estão sendo atualizados depois cada patrulha, eu preciso que isso seja uma transformação estável que persiste durante a adição de novas linhas.
Parece que não consigo encontrar o tutorial ou percorrer como isso pode ser feito … e meu SQL é quase inexistente. Eu esperava que o CartoDB tivesse algum tipo de interface de criação de fórmulas que me protegesse de toda a explosão da sintaxe SQL.
Alguém poderia fornecer um esboço das etapas da solução que eu deveria seguir aqui?
Resposta
Você pode fazer esse somatório na instrução SQL atrás da tabela em CartoDB. Quando você estiver na visualização de dados da tabela, clique na barra lateral SQL e você verá algo como:
SELECT * FROM crocs_table
Para incluir seu somatório, você deve modificar isso declaração para:
SELECT *, (num_croc_male + num_croc_female) as total_crocs FROM crocs_table
Você precisa clicar no botão “Aplicar consulta” e, em seguida, a tabela será atualizada com a coluna calculada mostrando acima. Quando você está na visualização do mapa, o campo calculado fica disponível para os fins que você descreve.
Comentários
- você também pode realizar o cálculo diretamente na interface do Dashboard, na guia DATA, encontre na parte inferior uma opção para mudar para a visualização SQL.
Resposta
Se você tivesse as 3 colunas diferentes em seu CartoDB, poderia atualizá-lo com a API SQL.
Então, se você quisesse sua tabela CartoDB (vamos chamá-la de crocs_table) seria assim:
num_croc_male num_croc_female total_crocs Row1: 5 10 15
Você pode atualizá-lo usando a API SQL da seguinte forma:
http://{account}.cartodb.com/api/v2/sql?q={SQL statement}&api_key={Your API key}
Account = o nome da sua conta CartoDB
Your API Key = A chave API da sua conta CartoDB
SQL statement =
INSERT INTO croc_table (num_croc_male, num_croc_female, total_crocs) VALUES (5, 10, 15);
Os crocodilos machos têm boas chances aqui … O URL total seria algo assim:
http://{account}.cartodb.com/api/v2/sql?q=INSERT INTO croc_table (num_croc_male, num_croc_female, total_crocs) VALUES (5, 10, 15)&api_key={Your API key}
Visitar o URL acima inseriria seu dados no CartoDB.
A chave para w o total (15) obtido na instrução SQL é baseado em como você faz seus gator wranglers inserindo os dados. Se for fazer isso por meio de um formulário da web, você pode usar javascript para adicionar os valores juntos para criar o URL e, em seguida, redirecionar o usuário para esse URL.
Comentários
- Hmmm, isso parece interessante para produzir uma coluna em tempo real. Talvez eu precise experimentar o que você sugere. À primeira vista, não me parece que isso resolveria meu problema original, que é como tornar essa nova coluna (total_crocs) persistente e visível para a visualização do CartoDB para que possa ser usada para definir estilos (por exemplo, número de baldes, diâmetro do símbolo, faixa de cor, etc.).
- Sua visualização no CartoDB deve ser atualizada automaticamente quando você adiciona dados no CartoDB. Por exemplo, se o SQL para sua visualização for ' SELECT * FROM croc_table ', então, quando outra linha de dados for atualizada, sua visualização incluirá os novos dados porque eles seriam incluídos nos resultados da consulta SQL.
- Obrigado: terei que tentar isso para ter certeza de que entendi e para verificar se as ' ferramentas de estilo do CartoDB podem realmente usar uma coluna preenchida dessa maneira.
Resposta
Não use soma. siga a sintaxe abaixo select (num_croc_male+num_croc_female) as total_crocs from
…
Comentários
- Bem-vindo ao GIS SE! Use
code tags
para tornar suas postagens mais legíveis.
Deixe uma resposta