Legge til verdier i to kolonner til ny kolonne på synkroniseringstabellen i CARTO?
On februar 16, 2021 by adminVi har feltdata som kommer inn fra en appplattform, og vi vil drive en CartoDB-visualisering for å hjelpe med planlegging.
En gjeng av rangers går ut kartlegging nettsteder for å telle krokodiller. For hvert nettsted samler appen: – Antall mannlige krokodiller (num_croc_male) – Antall kvinnelige krokodiller (num_croc_female)
Vi vil faktisk ikke at våre folk skal stå der i mørket og gjøre summer, så de laster opp dataene i dette formatet rett til skyen, og dette blir deretter POSTET over til vår CartoDB.
I CartoDB-visualiseringen vil vi vise de to kolene ovenfor, og vi vil også ha: Totalt antall krokodiller (num_croc_sitetotal).
Siden dette heltallet også vil bli brukt til å utforme visningen av hvert område, vil jeg ha verdien lagret i en kolonne.
Og siden dataene oppdateres etter hver patrulje, trenger jeg dette for å være en stabil transformasjon som vedvarer gjennom at nye rader blir lagt til.
Det virker som om jeg ikke kan finne veiledningen eller gå gjennom hvordan dette kan gjøres … og min SQL er nesten ikke-eksisterende. Jeg håpet liksom at CartoDB hadde et slags formelbyggingsgrensesnitt som ville beskytte meg mot fullstendig sprengning av SQL-syntaks.
Kan noen gi en oversikt over løsningstrinnene jeg burde følge her?
Svar
Du kan gjøre den summeringen i SQL-setningen bak tabellen i CartoDB. Når du er i datavisningen for tabellen, klikker du på SQL-sidefeltet og du ser noe sånt som:
VELG * FRA crocs_table
For å inkludere summasjonen din, vil du endre det uttalelse til:
SELECT *, (num_croc_male + num_croc_female) som total_crocs FRA crocs_table
Du må klikke på «Apply query» -knappen, og deretter oppdateres tabellen med den beregnede kolonnen som viser opp. Når du er i kartvisningen, er det beregnede feltet tilgjengelig for de formålene du beskriver.
Kommentarer
- kan du også utføre beregningen direkte på Dashboard-grensesnittet, i DATA-fanen, finn nederst en bryter for å endre til SQL-visningen.
Svar
Hvis du hadde de tre forskjellige kolonnene i CartoDB, kan du oppdatere den med SQL API.
Så hvis du vil at CartoDB-tabellen din (vi vil kalle den crocs_table) så slik ut:
num_croc_male num_croc_female total_crocs Row1: 5 10 15
Du kan oppdatere den ved hjelp av SQL API slik:
http://{account}.cartodb.com/api/v2/sql?q={SQL statement}&api_key={Your API key}
Konto = navnet på CartoDB-kontoen din
Din API-nøkkel = API-nøkkelen til din CartoDB-konto
SQL-setning =
INSERT INTO croc_table (num_croc_male, num_croc_female, total_crocs) VALUES (5, 10, 15);
Mannlige crocs har gode odds her … Den totale URL-adressen vil være omtrent slik:
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}
Å besøke URL-en ovenfor vil sette inn din data i CartoDB.
Nøkkelen til ho w det totale antallet (15) som kommer i SQL-setningen, er basert på hvordan du får gator-kranglerne til å legge inn dataene. Hvis du skal gjøre det via et webskjema, kan du bruke javascript til å legge til verdiene sammen for å opprette URL-en, og deretter omdirigere brukeren til den URL-en.
Kommentarer
- Hmmm, det ser interessant ut for å produsere en kolonne på farten. Kanskje jeg trenger å eksperimentere med det du foreslår. Ved første øyekast ser det ikke ut til at dette ville løse mitt opprinnelige problem som er hvordan du gjør den nye kolonnen (total_crocs) vedvarende og synlig for CartoDB-visualisering slik at den kan brukes til å drive styling (f.eks. antall bøtter, symboldiameter, fargebånd osv.).
- Visualiseringen din i CartoDB bør automatisk oppdateres når du legger til data i CartoDB. Så for eksempel hvis SQL for visualiseringen din er ' VELG * FRA croc_table ', så når en ny datalinje blir oppdatert, vil visualiseringen din inkludere de nye dataene fordi de ville være inkludert i resultatene av SQL-spørringen.
- Takk: Jeg må prøve dette for å forsikre meg om at jeg forstår det og for å verifisere at CartoDB ' s stylingsverktøy faktisk kan bruke en kolonne fylt på denne måten.
Svar
Ikke bruk summen. følg syntaksen nedenfor select (num_croc_male+num_croc_female) as total_crocs from
…
Kommentarer
- Velkommen til GIS SE! Bruk
code tags
for å gjøre innleggene dine mer lesbare.
Legg igjen en kommentar