属性データをグループ化してカウントする方法は?


18

同じコード属性値を持つフィーチャをグループ化し、カウントしたい。

レイヤーリストでデータを分類し、フィーチャカウントを有効にできますが、属性テーブルでカウントを取得できません。

回答:


19

新しい仮想レイヤーを使用すると、QGISサンプルデータの空港シェイプファイルなど、QGISの任意のレイヤーでSQLを使用できます。

ここに画像の説明を入力してください

USEタイプごとに空港の数をカウントし、平均高度を計算するには:

ここに画像の説明を入力してください

結果は新しいレイヤーとしてロードされます:

ここに画像の説明を入力してください


これは、属性のみ(CSV)レイヤーのフィールドを持つベクターレイヤーに結合したレイヤーからデータを取得しようとしたため、グループ統計よりも便利でした。グループの統計では、結合ではなく単一のレイヤーからのみプルできます。
J.テイラー

私はちょうど私のプロジェクトのレイヤーでこの正確な方法を試しましたが、SQLテストはエラーなしで戻りますが、「合計」列に表示されるのは0です。間違っている?

1
@Isaacson、私はまったく同じ問題に直面していました、それは引用が非難されるべきものであることが判明しました。私の場合、テスト時にフィールドを二重引用符で囲むとエラーが発生し、一重引用符ではエラーではなく間違った結果が返され、引用符では期待どおりの結果が得られませんでした。また、使用しているQGISのバージョンにも依存します。私は3.4にしています
dorakiara

1
PSまた、結合されたフィールドで集計(SUM)することもできませんでした。
ドラキアラ

7

これは私が見つけたGoogleでの最良の結果でしたが、GMによるスクリーンショットチュートリアルは時代遅れであり、プラグインの使用方法を見つけるのに時間がかかりました。

  1. インストールしたら、「ベクター」メニューからグループ統計コントロールパネルをロードします。
  2. 対象のレイヤーを選択します。
  3. フィールドリストから、目的のフィールドを「行」ボックスにドラッグします。
  4. 次に、同じフィールドを「値」ボックスにドラッグします。
  5. フィールドリストにはいくつかの関数もあり、「カウント」を「値」ボックスにドラッグします(そこに入力したフィールドの下)。
  6. 「計算」をクリックすると、左側に表が表示されます。
  7. 必要に応じて、カウントで並べ替えることができます。列ラベルをクリックします。

これが他の人をどのように助けるか。


属性のみのレイヤーとベクターレイヤーの間の結合に対してこれをどのように行いますか?たとえば、プロパティパーセルと値を持つ「パーセル」テーブルがあり、次に所有者名をパーセル番号にマッピングする「所有者」テーブルがあるとします。「所有するすべての区画のプロパティ値の合計ですべての所有者をグループ化する」と言うにはどうすればよいですか?
J.テイラー

6

Group Statsプラグインをインストールすることをお勧めします。クイックチュートリアルを次に示します。 グループ統計チュートリアル

  1. グループ統計アイコンを検索します
  2. コードがあるレイヤーを選択します
  3. 属性を選択します(コードの場合)
  4. 計算をクリックします

カウントが表示されます。設定に移動すると、表示される他のパラメータを避けてCountのみを選択できるはずです(これは私の場合ではありません...)。[保存]ボタンをクリックする前に、.csvに追加するフィールドを選択する必要があることに注意してください。そのためにShiftキーを押したままにします。Anita Graserによって書かれたより高度なチュートリアルがあります。


どういたしまして!この質問もご覧ください。もっとお会いしましょう!バイバイ!
GM

1

QGISでQspatialiteを使用することもできます。SQLウィンドウはMapinfoと同じです。必要な列でgroupbyコマンドを使用してSQLリクエストを作成するのはあなた次第です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.