[OSGeoJapan-discuss] 【教えてください】group by idで合計して、リレーショナル結合したい

yas.shimada35 @ gmail.com yas.shimada35 @ gmail.com
2022年 10月 9日 (日) 21:25:43 PDT


嘉山様

 

ありがとうございます!

 

はい、Shapeでやりました(これも説明不足でした)

 

>プロセッシングのベクタ一般にある SQLを実行でやるとSQLの実行結果をベクトルレイヤ

>として保存できるといったらできます。(ただしGroup by の集計SQLが実行できるかどうかは

>確かめていません)

 

ありがとうございました。これで出来ました。

 

・プロセッシングのベクタ一般にある SQL

・db-mangerのSQL

 

が違うのですね。「どれも一緒」と思っていました。

 

ありがとうございました。

 

さらにデータベースGeopackageも勉強します。

 

しまだ

 

 

From: Yoichi Kayama <yoichi.kayama @ gmail.com> 
Sent: Monday, October 10, 2022 1:15 PM
To: yas.shimada35 @ gmail.com
Cc: osgeojapan-discuss <osgeojapan-discuss @ lists.osgeo.org>
Subject: Re: [OSGeoJapan-discuss] 【教えてください】group by idで合計して、リレーショナル結合したい

 

島田様

 

データはShapeですか? Geopackageならデータベース部分はSpatialiteとだいたい同じですし

QGISからGeoPackageやSpatialiteへの出力もできるからSQLをつかうならそちらに変換して

もいいかもしれません。

 

プロセッシングのベクタ一般にある SQLを実行でやるとSQLの実行結果をベクトルレイヤ

として保存できるといったらできます。(ただしGroup by の集計SQLが実行できるかどうかは

確かめていません)

 

あと メニュー -> レイヤ -> レイヤの追加 で仮想レイヤの追加ができますが、

ここでSQLを指定して、その結果を仮想レイヤとして出力できます。

できあがった仮想レイヤをエキスポートで保存することもできます。

 

あと地域統計のプラグインで Group byの集計ができたものがあります。

 

https://plugins.qgis.org/plugins/GroupStats/

 

たしか結果を保存できたような記憶あります。

 

 

 

2022年10月10日(月) 12:49 <yas.shimada35 @ gmail.com <mailto:yas.shimada35 @ gmail.com> >:

大変失礼しました。

 

Qgisです。

 

QGISバージョン

3.22.8-Białowieża

 

でやりました。

 

処理途中でspatialite、pythonやRに橋渡ししてから

またQgisに戻るのは避けたかったので・・・

(postGISは敷居が高いので勉強してないです)

 

しまだ

From: Yoichi Kayama <yoichi.kayama @ gmail.com <mailto:yoichi.kayama @ gmail.com> > 
Sent: Monday, October 10, 2022 12:44 PM
To: shimada yasu <yas.shimada35 @ gmail.com <mailto:yas.shimada35 @ gmail.com> >
Cc: osgeojapan-discuss <osgeojapan-discuss @ lists.osgeo.org <mailto:osgeojapan-discuss @ lists.osgeo.org> >
Subject: Re: [OSGeoJapan-discuss] 【教えてください】group by idで合計して、リレーショナル結合したい

 

島田様

 

作業はQGIS上でなさったのでしょうか?

こちらはQGIS専用のメーリングリストではなくてオープンソースGIS一般についての

話をする場所です。QGISについての質問も歓迎いたしますが、そのほかのGISやツールに

ついての話もあるので、何のソフトで(OSやバージョンも含む)どのような手順でどういう

データをあつかったかのご説明があったほうが回答がえやすい(そうでないとわからない

ところが多い)と思います。

 

SQL自体はQGISが中継していますが、相手データベースによって微妙な動きが違うと

思います。

 

PostgreSQLとかだと  

 

 create table resulttable  as select m_id, sum( my_length) as sum_len from "交差レイヤ" group by m_id;

 

か

 create view resultview   as select m_id, sum( my_length) as sum_len from "交差レイヤ" group by m_id;

 

で結果のテーブルやビューができると思います。

 

geopackage  とかでそれができるかどうかは試してません。

 

 

 

 

 

2022年10月10日(月) 12:08 shimada yasu <yas.shimada35 @ gmail.com <mailto:yas.shimada35 @ gmail.com> >:

どなたかご教示ください

大量のラインデータを、メッシュ(ポリゴン)で切断し
各ポリゴンに含まれるライン長の合計を、メッシュ(ポリゴン)の属性として
付けたいのですが・・・うまくいきません

(1)ラインとメッシュでインターセクトして、交差レイヤ(切断ライン群)を得る
(2)交差レイヤには、メッシュ番号_m_id_が含まれる
(3)交差レイヤの属性テーブルから、フィールド計算機で、ジオメトリ($length)ライン長を付ける_my_length

(4)SQLクエリで

select m_id, sum( my_length) as sum_len from 交差レイヤ group by m_id

でやれば良いだろうと思って、データベースマネージャから
SQLクエリで実行すると、ちゃんと結果が得られるのですが

「保存できません」

よって、リレーショナル(属性テーブル結合」できず、ここで止まっています。

-- 
島田泰夫/一般財団法人日本気象協会/環境・エネルギー事業部/環境アセスメント事業課/〒170-6055豊島区東池袋3-1-1サンシャイン60-55F
/TEL:03-5958-8160 FAX:03-5958-8157 /shimada @ jwa.or.jp <mailto:shimada @ jwa.or.jp> 
/携帯:080-8018-1567
_______________________________________________
OSGeoJapan-discuss mailing list
OSGeoJapan-discuss @ lists.osgeo.org <mailto:OSGeoJapan-discuss @ lists.osgeo.org> 
https://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss

-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20221010/a6f76a1b/attachment-0001.htm>


OSGeoJapan-discuss メーリングリストの案内