問題タブ [jsonb]

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 投票する
3 に答える
3217 参照

sql - JSONB: more than one row returned by a subquery used as an expression

I am (still) new to postgresql and jsonb. I am trying to select some records from a subquery and am stuck. My data column looks like this (jsonb):

And here is my query. I want to select all names that are "Bob" whose age is greater than 30:

I get the error:

I don't quite understand. If I do some simple substitution (just for testing) I can do this:

and that returns both rows.

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

postgresql - 複数の基準でjsonbをフィルタリングするにはどうすればよいですか?

次のテーブル構造があります。

そして、次のデータ (簡潔にするために部分的なものです...年のランダム性と売上/支出の年が互いに一致していないことに注意してください):

従業員ごとに、最新の更新行を評価し、2014 年のテレビ売上が 30 を超える従業員を見つける必要があります。そこから、テレビの平均支出が 5 未満の従業員をさらにフィルター処理する必要があります。平均については、最新の行だけでなく、テレビのすべての費用。

私の期待される出力は1行になります:

私は(ちょっと)どちらか一方を行うことができますが、両方はできません:

を。2014 年の売り上げが 30 を超える (ただし、最新の「テレビ」の売り上げは取得できません ;(

b. 2013 年の平均支出を取得します (これは平均テレビ支出である必要があります)

編集: これは非常に大きなテーブルになる可能性があるため、postgresql と jsonb の両方に慣れていないため、パフォーマンスとインデックス作成のニーズに関するコメントをいただければ幸いです。

編集#2:両方の答えを試しましたが、どちらも大きなテーブルでは効率的ではないようです;(

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

sorting - Postgresql 9.4 での jsonb オブジェクトのソート

私が直面している問題は、ソートを実行できないことではなく、正しいソートを実行できないことです。つまり、jsonb として保存されているオブジェクトは、テーブルに表示する前に並べ替える必要があります。ソートするクエリの一部は次のとおりです。

ただし、問題は、現在の状態では、psql が 2 つのクラスター (大文字と小文字) で並べられた人のリストを返すことです。ASC ソートは、ソートされた大文字 + ソートされたダウンケースを返し、DESC は、反転されたソート ダウンケース + 反転されたソート 大文字を返します。

大文字と小文字を区別しない順序でデータを並べ替える裏技はありますか、それともデータを最初に特定のケースで保存する必要がありますか。

これで一時的な修正が作成されますが、他の方法があればうれしいです

0 投票する
2 に答える
654 参照

sql - 基準を満たさない行を含めるにはどうすればよいですか?

私はおそらくこれについて間違って考えているだけだと知っています。私は次の構造を持っています:

そして、次のデータ:

すべての従業員と 2012 年の売上の「値」を返そうとしています。2012 年の売上がない場合は、「データなし」を返します。私は持っている:

私は得る:

「Rob」の値が間違っています。「データなし」である必要があります。(「倍精度型の入力構文が無効です: 'No Data'」というエラーが表示されるため、coalesce の 2 番目のパラメーターとして 0 を使用しています。

0 投票する
2 に答える
813 参照

sql - データから jsonb 配列とオブジェクトの配列を返すにはどうすればよいですか?

次の表があります。

次のデータを使用します。

「sales_tv」と「sales_radio」以外にもキーがあることに注意してください。以下のクエリでは、「sales_tv」と「sales_radio」に注目する必要があります。

Jim の 2012 年のすべての売上を検索する必要があります。「sales_」で始まり、それをオブジェクトに入れます (必要なのは、製品が販売されたものと値だけです)。例えば:

私が持っている:

しかし、ジムのデータだけを取得することさえできないようです. 代わりに私は得る: