問題タブ [lateral]
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.
sql - SQL Server の CROSS APPLY に類似した Postgres
MS SQL Server 2005 用に記述された SQL クエリを Postgres 9.1 に移行する必要があります。このクエリで
代用する最良の方法は何ですか?CROSS APPLY
GetCitizenRecModified()
function はテーブル値関数です。この関数のコードを配置することはできません。なぜなら、この関数は非常に巨大で、計算が難しく、放棄できないからです。
postgresql - エラー: フォーム内の関数式は、同じクエリ レベルの他のリレーションを参照できません: LATERAL の回避方法
もちろん、この質問は単なる仮説に過ぎません。私は DBMS で素数の表を計算しようとするほど愚かではありません。しかし、疑問が残ります: の不在を回避するためのクリーンな方法はありLATERAL
ますか?
ご覧のとおり、ビュー (機能しない)、このビューの周りの関数 (どちらも機能しない)、この関数の一時テーブル (njet)、および関数の属性をいじってみました。
次のステップは、おそらく何らかのトリガー ハックになるでしょう (しかし、基本的にトリガーは DBMS スキーマの厳密さから見えないため、トリガーは本当に、本当に嫌いです)
sql - LEFTOUTERJOINでSETOFレコードを返すストアドプロシージャを使用する
次のように、左外部結合でパラメーターを渡すストアドプロシージャを呼び出そうとしています。
compute_prices()
レコードのセットを返します。
これはpostgresが示すメッセージです:
エラー:テーブル「i」のFROM句エントリへの参照が無効です
...左結合compute_prices(i.id、current_date)..。
ヒント:テーブル "i"のエントリがありますが、クエリのこの部分から参照することはできません。
この種のクエリはFirebirdで機能します。クエリを使用するだけで機能させる方法はありますか?アイテムを循環し、を個別に呼び出す別のストアドプロシージャを作成したくありませんcompute_prices()
。
sql - 複数の列を返すplpgsql関数は複数回呼び出されます
PostgreSQL 9.2.1を実行していて、3列を返すplpgsql関数があります。これは次のように呼ばれます(簡略化):
この関数は警告メッセージを出力しますが、3回出力されていることに驚きました。関数は3回呼び出されるようです-おそらく各列に1回です。これはパフォーマンスには良くありません!一度だけ呼び出されるようにするにはどうすればよいですか?すでにSTABLEとマークされています。
私がそれを次のように呼ぶなら
その場合、警告は1回だけ出力されますが、結合や他の列が返される大きなクエリにそれを統合する方法がわかりません。つまり、FROMリストに他のテーブルが必要で、関数がそれらから入力を受け取る場合に、関数をFROMリストに入れる方法がわかりません。
編集:
クエリ(元のクエリに非常に近い):
my_aggregate_function
my_function
それぞれが3列(border、lower_limit、upper_limit)を返しますが、これはmy_aggregate_function
集計でmy_function
あり、通常の関数です。
sql - JSON 列の配列の要素のクエリ
最近、PostgreSQL 9.3.1 を使用して JSON 機能を活用するようにアップグレードされました。私のテーブルには、次のような構造を持つ json 型の列があります。
これは、質問のための単なるダミーデータです。
ID に基づいてメール配列内の特定のアイテムを照会することは可能ですか?
かなり:「id = 123のメールを返す)」?
xpath - ハイブ - LATERAL VIEW は xpath を展開します
次の入力 XML があります。
従業員のファーストネームが欠落していることに注意してください 1111
次の選択を実行しています:
期待される結果:
欠落している名前の NULL 値に注意してください)
ただし、次の結果が得られます。
2222 シャーロック・ホームズ
従業員 1111 の名が見つからないため、クエリで最初の従業員が返されません。期待される結果に示されているように、両方の従業員データを取得する方法はありますか? 助けてください。ありがとう、
sql - group by を使用して配列内の最も一般的な要素を見つける
次の構造の行のテーブルがあり、各行にname TEXT, favorite_colors TEXT[], group_name INTEGER
は全員のお気に入りの色とその人が属するグループのリストがあります。GROUP BY group_name
各グループで最も一般的な色のリストを返すにはどうすればよいですか?
int[] && int[]
オーバーラップを設定しint[] & int[]
、交差点を取得してから、カウントしてランク付けする他の何かを組み合わせて実行できますか?
join - 側面図の分解により、デカルト積が得られます
次のようなデータセットがあります。
私はクエリを使用しています:
これにより、id と速度のデカルト積が得られます。誰かがこれを取り除く方法を提案できますか.
sql - 別のクエリの出力を使用してクエリを動的に実行する
私は2つの入力パラメータ(rundate::date
とbranch::varchar
)を取るgenerate_tableと呼ばれる関数を持っています
PLPGSQL を使用して、すべてのブランチのリストと各ブランチの最新の日付を取得し、これをパラメーターとして generate_table 関数に渡します。
私が持っているクエリは次のとおりです。
そして、これは次のようになります。
そして私が必要とするのは、関数がこのようなものを実行することです
私は PLPGSQL について多くのことを読んできましたが、これまでのところ、基本をほとんど知らないとしか言えません。
すべての値をまとめてから関数内で EXECUTE を使用するために連結を使用できることを読みましたが、正しく機能させることができませんでした。
これを行う方法に関する提案はありますか?
sql - JSON 型内の配列要素のクエリ
json
PostgreSQL 9.3で型をテストしようとしています。というテーブルに という
列がありjson
ます。JSON は次のようになります。data
reports
「objects」配列の「src」値に一致するすべてのレポートについてテーブルをクエリしたいと考えています。たとえば、一致するすべてのレポートについて DB にクエリを実行できます'src' = 'foo.png'
か? に一致するクエリを正常に作成しました"background"
:
しかし、"objects"
値の配列があるため、機能するものを書くことができないようです。一致するすべてのレポートについて DB にクエリを実行することは可能'src' = 'foo.png'
ですか? これらのソースを調べましたが、まだ取得できません:
- http://www.postgresql.org/docs/9.3/static/functions-json.html
- 新しい PostgreSQL JSON データ型内のフィールドを使用してクエリを実行するにはどうすればよいですか?
- http://michael.otacoo.com/postgresql-2/postgres-9-3-feature-highlight-json-operators/
私もこのようなことを試しましたが、役に立ちませんでした:
私はSQLの専門家ではないので、何が間違っているのかわかりません。