Aggiunta di valori in due colonne alla nuova colonna sulla tabella di sincronizzazione in CARTO?
Su Febbraio 16, 2021 da adminAbbiamo dati sul campo provenienti da una piattaforma di app e vogliamo guidare una visualizzazione CartoDB per aiutare con la pianificazione.
Un gruppo dei ranger esce per sondare i siti per contare i coccodrilli. Per ogni sito, lapp raccoglie: – Numero di coccodrilli maschi (num_croc_male) – Numero di coccodrilli femmine (num_croc_female)
In realtà non vogliamo che la nostra gente se ne stia lì al buio a fare somme, quindi caricano i dati in questo formato direttamente nel cloud, e questo viene quindi inviato al nostro CartoDB.
Nella visualizzazione CartoDB, vogliamo mostrare le due colonne sopra, e vogliamo anche: Numero totale di coccodrilli (num_croc_sitetotal).
Poiché questo numero intero verrà utilizzato anche per definire lo stile della visualizzazione di ogni sito, voglio che il valore sia memorizzato in una colonna.
E poiché i dati vengono aggiornati dopo ogni pattuglia, ho bisogno che questa sia una trasformazione stabile che persista attraverso laggiunta di nuove righe.
Sembra che non riesco a trovare il tutorial o a seguire come potrebbe essere fatto … e il mio SQL è quasi inesistente. Speravo un po che CartoDB avesse una sorta di interfaccia per la creazione di formule che mi avrebbe protetto dalla piena esplosione della sintassi SQL.
Qualcuno potrebbe fornire una panoramica dei passaggi della soluzione che dovrei seguire qui?
Risposta
Puoi fare questa somma nellistruzione SQL dietro la tabella in CartoDB. Quando sei nella visualizzazione dati per la tabella, fai clic sulla barra laterale SQL e vedrai qualcosa di simile:
SELEZIONA * DA crocs_table
Per includere la tua somma, la modifichi dichiarazione a:
SELECT *, (num_croc_male + num_croc_female) as total_crocs FROM crocs_table
Devi fare clic sul pulsante “Applica query” e quindi la tabella si aggiornerà con la colonna calcolata che mostra su. Quando sei nella visualizzazione mappa, il campo calcolato è disponibile per gli scopi che descrivi.
Commenti
- puoi anche eseguire il calcolo direttamente nellinterfaccia del dashboard, nella scheda DATI, trova in basso un interruttore per passare alla visualizzazione SQL.
Risposta
Se avessi le 3 diverse colonne nel tuo CartoDB, potresti aggiornarlo con lAPI SQL.
Quindi, se volevi che la tua tabella CartoDB (la chiameremo crocs_table) avesse questo aspetto:
num_croc_male num_croc_female total_crocs Row1: 5 10 15
Potresti aggiornarlo utilizzando lAPI SQL in questo modo:
http://{account}.cartodb.com/api/v2/sql?q={SQL statement}&api_key={Your API key}
Account = il nome del tuo account CartoDB
La tua chiave API = La chiave API del tuo account CartoDB
Istruzione SQL =
INSERT INTO croc_table (num_croc_male, num_croc_female, total_crocs) VALUES (5, 10, 15);
I crocs maschi hanno buone probabilità qui … LURL totale sarebbe qualcosa del genere:
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}
Visitando lURL sopra verrebbe inserito il tuo dati in CartoDB.
La chiave per ho w il totale (15) che si ottiene nellistruzione SQL si basa su come gli addetti alligator inseriscono i dati. Se lo farai tramite un modulo web, potresti usare javascript per sommare i valori per creare lURL e poi reindirizzare lutente a quellURL.
Commenti
- Hmmm, sembra interessante per produrre una colonna al volo. Forse ho bisogno di sperimentare ciò che suggerisci. A prima vista non mi sembra che questo risolverebbe il mio problema originale che è come rendere quella nuova colonna (total_crocs) persistente e visibile alla visualizzazione di CartoDB in modo che possa essere utilizzata per guidare lo stile (ad es. numero di segmenti, diametro del simbolo, banda di colore, ecc.). >
- La tua visualizzazione in CartoDB dovrebbe essere aggiornata automaticamente quando aggiungi dati in CartoDB. Ad esempio, se il tuo codice SQL per la visualizzazione è ' SELECT * FROM croc_table ', quindi una volta che unaltra riga di dati viene aggiornata, la visualizzazione includerà i nuovi dati perché verrebbero inclusi nei risultati della query SQL.
- Grazie: dovrò provare questo per assicurarmi di averlo capito e per verificare che gli strumenti per lo styling di CartoDB ' possano effettivamente utilizzare una colonna popolata in questo modo.
Risposta
Non utilizzare la somma. segui la sintassi seguente select (num_croc_male+num_croc_female) as total_crocs from
…
Commenti
- Benvenuto in GIS SE! Utilizza
code tags
per rendere i tuoi post più leggibili.
Lascia un commento