Waarden in twee kolommen toevoegen aan een nieuwe kolom op de synchronisatietabel in CARTO?
Geplaatst op februari 16, 2021 door adminWe hebben veldgegevens die binnenkomen vanaf een app-platform en we willen een CartoDB-visualisatie aansturen om te helpen bij de planning.
Een hoop van de parkwachters gaan op onderzoek uit om krokodillen te tellen. Voor elke site verzamelt de app: – Aantal mannelijke krokodillen (num_croc_male) – Aantal vrouwelijke krokodillen (num_croc_female)
We willen eigenlijk niet dat onze mensen daar in het donker staan te rekenen, dus uploaden ze de gegevens in dit formaat rechtstreeks naar de cloud, en dit wordt dan gepost naar onze CartoDB.
In de CartoDB-visualisatie willen we de twee bovenstaande cols laten zien, en we willen ook: Totaal aantal krokodillen (num_croc_sitetotal).
Aangezien dit gehele getal ook zal worden gebruikt voor het stylen van de weergave van elke site, wil ik dat de waarde wordt opgeslagen in een kolom.
En aangezien de gegevens worden vernieuwd na bij elke patrouille, ik heb dit nodig als een stabiele transformatie die blijft bestaan als er nieuwe rijen worden toegevoegd.
Het lijkt alsof ik de tutorial niet kan vinden of kan doorlopen hoe dit kan worden gedaan … en mijn SQL bestaat bijna niet. Ik hoopte een beetje dat CartoDB een soort interface voor het bouwen van formules had die me zou beschermen tegen de volledige explosie van SQL-syntaxis.
Kan iemand een overzicht geven van de oplossingsstappen die ik hier zou moeten volgen?
Answer
Je kunt die optelling doen in de SQL-instructie achter de tabel in CartoDB. Wanneer u zich in de gegevensweergave voor de tabel bevindt, klikt u op de SQL-zijbalk en ziet u iets als:
SELECT * FROM crocs_table
Om uw sommatie op te nemen, zou u dat wijzigen verklaring aan:
SELECT *, (num_croc_male + num_croc_female) as total_crocs FROM crocs_table
U moet op de knop “Zoekopdracht toepassen” klikken en de tabel wordt vernieuwd en de berekende kolom wordt weergegeven omhoog. Wanneer u zich in de kaartweergave bevindt, is het berekende veld beschikbaar voor de doeleinden die u beschrijft.
Opmerkingen
- u kunt de berekening ook rechtstreeks uitvoeren op de Dashboard-interface, op het tabblad GEGEVENS, vind je onderaan een schakelaar om over te schakelen naar de SQL-weergave.
Answer
Als u de 3 verschillende kolommen in uw CartoDB had, zou u deze kunnen bijwerken met de SQL API.
Dus als u uw CartoDB-tabel (we noemen het crocs_table) er als volgt uit zou willen zien:
num_croc_male num_croc_female total_crocs Row1: 5 10 15
Je zou het als volgt kunnen updaten met behulp van de SQL API:
http://{account}.cartodb.com/api/v2/sql?q={SQL statement}&api_key={Your API key}
Account = de naam van uw CartoDB-account
Uw API-sleutel = De API-sleutel van uw CartoDB-account
SQL-instructie =
INSERT INTO croc_table (num_croc_male, num_croc_female, total_crocs) VALUES (5, 10, 15);
De mannelijke crocs hebben hier goede kansen … De totale URL zou er ongeveer zo uitzien:
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}
Als u de bovenstaande URL bezoekt, wordt uw gegevens in CartoDB.
De sleutel tot ho w het totaal aantal (15) dat in de SQL-instructie wordt opgehaald, is gebaseerd op hoe u uw gator-wranglers de gegevens hebt laten invoeren. Als u dit via een webformulier gaat doen, kunt u javascript gebruiken om de waarden bij elkaar te voegen om de URL te maken en de gebruiker vervolgens om te leiden naar die URL.
Opmerkingen
- Hmmm, dat ziet er interessant uit om direct een column te maken. Misschien moet ik experimenteren met wat je suggereert. Op het eerste gezicht lijkt het mij niet dat dit mijn oorspronkelijke probleem zou oplossen, dat is hoe je die nieuwe kolom (total_crocs) persistent en zichtbaar maakt voor CartoDB-visualisatie , zodat het kan worden gebruikt om styling te stimuleren (bijv. aantal emmers, symbooldiameter, kleurband, enz.).
- Uw visualisatie in CartoDB zou automatisch moeten worden bijgewerkt wanneer u gegevens toevoegt aan CartoDB. Dus als uw SQL voor uw visualisatie bijvoorbeeld ' SELECT * FROM croc_table , en zodra een andere regel met gegevens wordt bijgewerkt, zal uw visualisatie de nieuwe gegevens bevatten omdat deze zouden worden opgenomen in de resultaten van de SQL-query.
- Bedankt: ik zal dit moeten proberen om er zeker van te zijn dat ik het begrijp en om te verifiëren dat de stylingtools van CartoDB ' daadwerkelijk gebruik kunnen maken van een kolom die op deze manier wordt gevuld.
Antwoord
Gebruik geen som. volg de onderstaande syntaxis select (num_croc_male+num_croc_female) as total_crocs from
…
Reacties
- Welkom bij GIS SE! Gebruik
code tags
om uw berichten leesbaarder te maken.
Geef een reactie