Je voudrais calculer la somme des valeurs dans une colonne, basée sur les valeurs dans une autre colonne. Pour illustrer ma question, j'ai téléchargé l'image ci-dessous. La deuxième colonne se compose de codes postaux, le troisième total des ventes. Je voudrais savoir quel est le total des ventes par code postal? Donc dans ce cas:
Quelle est la somme de la colonne trois pour la valeur de la colonne deux 1023
? La sortie devrait alors être 4 (0+1+1+2+0)
. La somme pour 1024
alors devrait être 11,5 suivant la même logique.
Comme il s'agit d'un ensemble de données assez volumineux, j'aimerais que le calculateur de champ QGIS (ou tout autre outil) calcule un nouveau champ qui indique les ventes totales dans le code postal. Jusqu'à présent, je n'arrive pas à le faire fonctionner et j'espérais que quelqu'un ici pourrait m'aider.
Comme vous pouvez le voir, j'ai des valeurs manquantes, est-ce un problème de calcul? Peut-être bon de mentionner que c'est une table.
la source
Réponses:
Mise à jour: QGIS 2.18 (07/07/2017):
Dans la calculatrice de champs , vous pouvez utiliser la fonction d' agrégation
sum
qui vous permet de additionner les valeurs d'une colonne en fonction d'une expression. Vous pouvez également, en option, grouper et filtrer les fonctionnalités pour la sommation. Ainsi, dans votre calculatrice de terrain, vous pouvez simplement utiliser:Ce qui fait exactement la même chose que la méthode utilisant le plugin GroupStats .
Message d'origine: 02/03/2016
Utilisez le plugin GroupStats que vous devrez peut-être télécharger depuis Plugins> Gérer et installer les plugins .
Voici un exemple de couche utilisant certains des attributs que vous avez indiqués:
Alors disons:
Exécutez le plug- in GroupStats , sélectionnez les champs appropriés pour la sommation (
Sales
pour les lignes;Sum
pour les valeurs), puis cliquez sur Calculer . Vous devriez voir les résultats montrant la somme de chaque vente:Enregistrez les résultats dans un fichier .csv à partir de la barre d'outils GroupStats:
Réimportez le fichier .csv dans QGIS en le faisant glisser vers l'interface ou depuis la barre d'outils:
Calque> Ajouter un calque> Ajouter un calque de texte délimité ( notez que les valeurs sont séparées par des points-virgules )
Faites une jointure avec le fichier de formes et le fichier .csv, en faisant correspondre les
Sales
champs:Le fichier de formes doit maintenant contenir les valeurs de somme du fichier .csv:
Vous pouvez, si vous le souhaitez, continuer à utiliser l'
Save As...
option sur le fichier de formes et l'enregistrer en tant que nouveau pour conserver les champs joints.la source
sum( "Sum", "Sales")
utilise"Sales"
comme filtre de groupe, si c'est ce que vous voulez dire?Si vous effectuez une mise à jour vers la toute dernière version de QGIS 2.14, vous pouvez utiliser des couches virtuelles faisant une instruction sql comme:
L'interface utilisateur ressemble à:
Vous pouvez également utiliser le gestionnaire de base de données, où vous avez un générateur de requêtes derrière le bouton sql:
La colonne MYID peut être utilisée pour joindre les ventes additionnées à la table principale. L'onglet de jointure se trouve sous les propriétés du tabel.
Jetez un œil au changelog visuel de QGIS sous
Feature: Virtual layers
la source
Une façon de procéder est la suivante:
la source