Ajouter des valeurs dans deux colonnes à une nouvelle colonne sur la table de synchronisation dans CARTO?
On février 16, 2021 by adminNous avons des données de champ provenant dune plate-forme dapplication et nous voulons piloter une visualisation CartoDB pour aider à la planification.
Un tas des gardes se rendent sur les sites pour dénombrer les crocodiles. Pour chaque site, lapplication recueille: – Nombre de crocodiles mâles (num_croc_male) – Nombre de crocodiles femelles (num_croc_female)
Nous ne voulons pas que nos gens se tiennent là dans le noir pour faire des sommes, alors ils téléchargent les données dans ce format directement dans le cloud, et cela est ensuite posté sur notre CartoDB.
Dans la visualisation CartoDB, nous voulons afficher les deux colonnes ci-dessus, et nous voulons également: Nombre total de crocodiles (num_croc_sitetotal).
Étant donné que cet entier sera également utilisé pour styliser laffichage de chaque site, je veux que la valeur soit stockée dans une colonne.
Et comme les données sont actualisées après chaque patrouille, jai besoin que ce soit une transformation stable qui persiste pendant que de nouvelles lignes sont ajoutées.
Il semble que je ne puisse pas trouver le didacticiel ou expliquer comment cela pourrait être fait … et mon SQL est presque inexistant. Jespérais en quelque sorte que CartoDB avait une sorte dinterface de création de formules qui me protégerait de lexplosion de la syntaxe SQL.
Quelquun pourrait-il fournir un aperçu des étapes de la solution que je devrais suivre ici?
Réponse
Vous pouvez faire cette somme dans linstruction SQL derrière la table dans CartoDB. Lorsque vous êtes dans la vue des données de la table, cliquez sur la barre latérale SQL et vous verrez quelque chose comme:
SELECT * FROM crocs_table
Pour inclure votre sommation, vous devez modifier cela instruction à:
SELECT *, (num_croc_male + num_croc_female) as total_crocs FROM crocs_table
Vous devez cliquer sur le bouton « Appliquer la requête », puis la table sactualisera avec la colonne calculée montrant en haut. Lorsque vous êtes dans la vue cartographique, le champ calculé est disponible aux fins que vous décrivez.
Commentaires
- vous pouvez également effectuer le calcul directement sur linterface du Dashboard, dans longlet DATA, trouvez en bas un switch pour passer à la vue SQL.
Answer
Si vous aviez les 3 colonnes différentes dans votre CartoDB, vous pourriez le mettre à jour avec lAPI SQL.
Donc, si vous vouliez que votre table CartoDB (nous lappellerons crocs_table) ressemblait à ceci:
num_croc_male num_croc_female total_crocs Row1: 5 10 15
Vous pouvez le mettre à jour en utilisant lAPI SQL comme ceci:
http://{account}.cartodb.com/api/v2/sql?q={SQL statement}&api_key={Your API key}
Compte = le nom de votre compte CartoDB
Votre clé API = La clé API de votre compte CartoDB
Instruction SQL =
INSERT INTO croc_table (num_croc_male, num_croc_female, total_crocs) VALUES (5, 10, 15);
Les crocs mâles ont de bonnes chances ici … LURL totale serait quelque chose comme ceci:
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}
La visite de lURL ci-dessus insérerait votre données dans CartoDB.
La clé pour ho w le total (15) obtenu dans linstruction SQL est basé sur la façon dont vous faites entrer les données par vos gator wranglers. Si vous allez le faire via un formulaire Web, vous pouvez utiliser javascript pour ajouter les valeurs afin de créer lURL, puis rediriger lutilisateur vers cette URL.
Commentaires
- Hmmm, cela semble intéressant afin de produire une colonne à la volée. Peut-être que jai besoin dexpérimenter ce que vous suggérez. À première vue, cela ne me semble pas que cela résoudrait mon problème initial qui est comment rendre cette nouvelle colonne (total_crocs) persistante et visible à la visualisation CartoDB afin quelle puisse être utilisée pour piloter le style (par exemple, nombre de seaux, diamètre du symbole, bande de couleur, etc.).
- Votre visualisation dans CartoDB doit être automatiquement mise à jour lorsque vous ajoutez des données dans CartoDB. Par exemple, si votre SQL pour votre visualisation est ' SELECT * FROM croc_table ', puis une fois quune autre ligne de données sera mise à jour, votre visualisation inclura les nouvelles données car elles seraient incluses dans les résultats de la requête SQL.
- Merci: Je vais devoir essayer ceci pour être sûr de bien le comprendre et pour vérifier que les outils de style de CartoDB ' peuvent réellement utiliser une colonne remplie de cette manière.
Réponse
Nutilisez pas la somme. suivez la syntaxe ci-dessous select (num_croc_male+num_croc_female) as total_crocs from
…
Commentaires
- Bienvenue dans GIS SE! Veuillez utiliser
code tags
pour rendre vos messages plus lisibles.
Laisser un commentaire