問題タブ [ltree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
106 参照

postgresql - 賛成票で LTree を並べ替える

コメントシステムを書いています。ここのチュートリアルに従って階層を取得できました( http://www.postgresonline.com/journal/archives/173-Using-LTree-to-Represent-and-Query-Hierarchy-and-Tree-Structures.html )

ただし、賛成票で行を注文するのに問題があります。ORDER BY PATH, n.upvotes同じスレッドの返信には異なるnode paths. node_pathsを使用して計算されpublic_keyます。

与えられた例から

のノード パスはbそれぞれおよびcになります。ノードパスとそれらから単純に and を差し引くことはできません。私がそうすると、次の順序になります。a.ba.cbcORDER BY

public_keyから各行を削除するnode_pathと、単純に短い順に並べ替えられるため、これは理にかなっていますnode_path

正しい階層になり、次のように賛成票でソートされるクエリを作成するにはどうすればよいですか。

0 投票する
1 に答える
1027 参照

sql - PostgreSQL ltree - ltree で構築されたバイナリ ツリーから左/右のほとんどのパスと子を取得する方法は?

私は PostgreSQL と ltree を使用して、バイナリ ツリー データの大規模なセットを構築しています。特定のロジックでは、特定のノードの左端/右端のパスを取得する必要があります。

私の二分木のサンプル

ここに画像の説明を入力

私のテーブルコンテンツのサンプル

ここに画像の説明を入力

サンプル入力と期待される出力:

入力 - ノード 1、左端の子

出力 - 1、1.L2、1.L2.L3、... (一番左の外側の子のみ)

この結果をpostgresql、ltreeクエリで取得したいと思います。

これを解決するのを手伝ってください。

より優れたpostgreテーブルの設計も提案できますが、それは大量のデータで優れたパフォーマンスを得る必要があります.