Comment regrouper et compter les données d'attribut?

18

Je souhaite regrouper et compter les entités avec la même valeur d'attribut de code.

Je peux classer les données et activer le nombre d'entités dans la liste des couches mais je ne peux pas obtenir les nombres dans la table attributaire.

Seren
la source

Réponses:

19

Avec la nouvelle couche virtuelle, vous pouvez maintenant utiliser SQL sur n'importe quelle couche dans QGIS, par exemple le fichier Shapefile de l'aéroport à partir des exemples de données QGIS:

entrez la description de l'image ici

Pour compter le nombre d'aéroports par type d'USAGE et calculer l'utilisation d'élévation moyenne:

entrez la description de l'image ici

Les résultats sont chargés comme un nouveau calque:

entrez la description de l'image ici

obscur
la source
Cela m'a été plus utile que les statistiques de groupe, car j'essayais d'obtenir des données d'une couche qui rejoignait une couche vectorielle avec des champs d'une couche d'attribut uniquement (CSV). Les statistiques de groupe ne me permettaient de tirer qu'à partir d'une seule couche plutôt que d'une jointure.
J. Taylor
Je viens d'essayer cette méthode exacte avec une couche sur mon projet, le test SQL revient sans erreur, mais tout ce que j'obtiens dans la colonne "somme" est 0. Tout indice sur où je pourrais chercher ce que je fais mal?
1
@Isaacson, j'étais confronté exactement au même problème, il s'est avéré que les citations étaient à blâmer. Dans mon cas, la double citation des champs donnait une erreur lors du test, les guillemets simples ne donnaient aucune erreur mais de mauvais résultats, aucune citation ne donnait le résultat attendu. Cela peut également dépendre de la version de QGIS que vous utilisez. Je suis le 3.4
dorakiara
1
PS Je ne pouvais pas non plus le faire fonctionner pour agréger (SUM) sur un fichier joint.
dorakiara
7

Ce fut le meilleur résultat sur Google que j'ai pu trouver, mais le tutoriel de capture d'écran de GM est obsolète et il m'a fallu un certain temps pour savoir comment utiliser le plugin.

  1. Une fois installé, chargez le panneau de configuration Group Stats depuis le menu "Vector".
  2. Sélectionnez la couche qui vous intéresse.
  3. Dans la liste des champs, faites glisser le champ d'intérêt dans la case "lignes".
  4. Faites maintenant glisser le même champ dans la case "valeur".
  5. Dans la liste des champs, il y a aussi quelques fonctions, faites glisser "count" dans la case "value" (sous le champ que vous y avez inséré).
  6. Cliquez sur "calculer" et un tableau apparaîtra à gauche.
  7. Vous pouvez trier par le nombre si vous le souhaitez, cliquez sur le libellé de la colonne.

Comment cela aide les autres.

Gregory
la source
Comment feriez-vous cela pour une jointure entre une couche d'attribut uniquement et une couche vectorielle? Par exemple, disons que j'avais une table "Parcels" contenant des parcelles et des valeurs de propriété, puis une table "Owners" qui mappait les noms des propriétaires aux numéros de parcelle. Comment pourrais-je dire "Regrouper tous les propriétaires par la somme des valeurs immobilières de toutes les parcelles qu'ils possèdent"?
J. Taylor
6

Je vous suggère d'installer le plugin Group Stats . Voici un petit tutoriel: tutoriel de statistiques de groupe

  1. Rechercher l'icône Statistiques du groupe
  2. Sélectionnez la couche dans laquelle vous avez les codes
  3. Sélectionnez l'attribut (dans votre cas Code)
  4. Cliquez sur Calculer

Le comte apparaîtra. Si vous allez dans les préférences, vous devriez pouvoir sélectionner uniquement Count en évitant les autres paramètres à afficher (ce n'est pas mon cas ...). Rappelez-vous qu'avant de cliquer sur le bouton Enregistrer, vous devez sélectionner les champs que vous souhaitez ajouter à votre .csv: maintenez la touche Maj pour le faire. Voici un tutoriel plus avancé écrit par Anita Graser.

GM
la source
Vous êtes les bienvenus! Jetez également un œil à cette question . J'espère voir plus de toi! Au revoir!
GM
1

vous pouvez également utiliser Qspatialite dans QGIS. La fenêtre SQL est identique à celle de Mapinfo. A vous ensuite de faire votre requête SQL avec une commande groupby sur la colonne souhaitée.

BAUDIN
la source